333 - Me veo borroso en Linux
Tenía un problema en Linux (y en Windows) y es que la webcam me sacaba desenfocado, me veía borroso en Linux. Te cuento como arreglarlo.
Hace algún tiempo que vengo observando que mi webcam no se comporta como debía. Básicamente, en algún que otro vídeo me he encontrado que aparezco como difuminado, vamos que me veo borroso en Linux. Esto no es algo que me suceda solo en Linux, sino que también me estaba sucediendo en Windows. Hasta el momento no le había prestado mucha importancia, hasta que recientemente esto se ha venido a acentuar, y en algún caso a convertirse en un problema.
Así en este episodio del podcast, te cuento como lo he solucionado, y sobre una nueva aplicación que también pongo a tu disposición para el caso de que la quieras utilizar. Por supuesto, que tienes otras opciones, de las que también te hablaré en este episodio. De esta manera, tu puedes elegir la opción que mas te guste, y en su caso, compartirla conmigo.
Me veo borroso en Linux
Sobre el episodio de Wintablet
El episodio 160 de Wintablet estuvo dedicado a Linux. Todo esto estaba motivado por una serie de episodios que dedicó rfog a los tres sistemas operativos principales, en su podcast irreverente y carente de toda vergüenza, como el mismo dice Leña al mono que es de goma. Durante el episodio que puedes ver en el propio canal de YouTube de WinTablet, hubo un momento en que yo aparecía borroso.
Ciertamente tratándose de la temática que trataba el podcast, ya puedes imaginar, las burlas y risas que se produjeron a mi costa. Siempre desde el respeto por supuesto, aquí no se trataba hacer leña del árbol caído, ni mucho menos. Sin embargo, realmente fue mucha casualidad. Lo cierto es que nadie le dio mas importancia de la que pueda tener, teniendo en cuenta del momento en que se produjo
También me veo borroso en Windows
Pero esto no es nada nuevo, y nada que me haya sucedido por primera vez. Y tampoco es algo que me haya sucedido solo en Linux. Lo cierto es que la primera vez que me sucedió fue precisamente en Windows. Hasta la fecha no le he dado mucha importancia. Sin embargo, en las últimas reuniones online a las que he asistido, este comportamiento erróneo se ha acentuado, con lo que empezaba a preocuparme.
La primera idea fue buscar a lo largo y ancho de Internet en busca de una solución. Y ciertamente el fabricante de la webcam, Logitech tiene una aplicación y controlador para gestionar la webcam, pero por determinadas circustancias yo no puedo instalarla, con lo que lamentablemente me van a tener que seguir viendo borroso cuando utilice Windows, y la webcam así lo considere.
Soluciones para Linux
Evidentemente, y como ya te imaginas, para el caso de Linux si que encontré una solución o varias realmente. Ciertamente, no existe controlador o aplicación de Logitech para Linux, pero no es necesario. No me hace falta.
v4l2-ctl
Todo se basa en utilizar v4l2-ctl
, una aplicación que se habla con los controladores de webcams. El problema de esta aplicación es que se trata de una herramienta para la terminal, con lo que si no te llevas bien con la terminal es un inconveniente.
Pero no es este el único inconveniente. Cada vez que inicias tu equipo, los valores que hayas configurado para este webcam se pierden, y se establecen los que vienen por defecto. Para el primer caso, es tan sencillo como crear un script que configure la webcam cada vez que inicias el equipo, algo como esto,
#!/bin/bash
v4l2-ctl --set-ctrl=brightness=128 --device /dev/video0
v4l2-ctl --set-ctrl=contrast=128 --device /dev/video0
Este sencillo script, con todos aquellos parámetros que quiera configurar, tan solo tengo que ponerlos en ~/.bashrc
o ~/.zshrc
, de cada uno de los usuarios, y problema resuelto. Por otro lado, puedes ver la configuración de tu webcam, utilizando este otro comando,
v4l2-ctl --list-ctrls --device /dev/video0
El problema, me lo podría encontrar en el caso de que se conectara o desconectara una webcam. En este caso, el usuario tendría que lanzar el script a mano, con el inconveniente que esto tiene, para el caso de que no utilices la terminal.
Automatizar el script
La siguiente opción es automatizar el script utilizando el subsistema udev
para establecer la configuración. Para esto es necesario obtener la identificación de tu webcam. Esto lo puedes hacer ejecutando el siguiente comando en un terminal
$ lsusb
Bus 001 Device 021: ID 046d:c52f Logitech, Inc. Unifying Receiver
El identificador que estamos buscando es 046d:c52f
. A partir del mismo tienes que crear el siguiente archivo /etc/udev/rules.d/99-local-webcam.rules
y en el mismo, establecer todas las configuraciones que consideres. Por ejemplo,
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl brightness=128 --device /dev/%k"
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl contrast=128 --device /dev/%k"
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl saturation=128 --device /dev/%k"
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl focus_auto=0 --device /dev/%k"
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl focus_absolute=0 --device /dev/%k"
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl zoom_absolute=100 --device /dev/%k"
O incluso ponerlo todo en un script, que creo que sería la forma mas sencilla, cómoda y práctica de hacerlo. Sin embargo, el problema, es que estos ajustes se aplicarán a todos los usuarios que utilicen tu equipo.
Webcam-Indicator
Para resolver estos problemas y para dar mas posibilidades a la herramienta he implementado una sencilla aplicación que te va a permitir no solo gestionar el auto focus, sino también establecer el enfoque y otros parámetros. Si bien, para esta primera versión solo me he centrado en el auto focus, que es lo que ahora mismo me preocupa, en siguientes versiones, iré dando mas prestaciones, porque la base de la aplicación ya está hecha.
La aplicación es un indicador, que se sitúa en el área de indicadores, y te muestra si en alguna de las cámaras está habilitado el autofocus, y en ese caso deshabilitarlo de forma sencilla. Además te permite establecer el valor del enfoque.
Ahora mismo no está disponible para la instalación. En cuanto lo esté lo pondré aquí mismo e indicaré la forma de instalarlo.
Imagen de portada de Clem Onojeghuo
Más información,
Excelente muchas gracias por la iniciativa
Gracias a ti por comentar
Hola, te dejo un comentario que no tiene nada que ver con el problema que tenías con la webcam de Logitech, sino un problema mucho mayor. Llevo más de 2 años con PopOS en mi portátil gaming de 2014, desde 19.10 y luego la 20.04LTS. Todo el HW funcionando a la perfección salvo la webcam, no la detecta. Tu podcast de hoy me ha hecho apuntarme una tarea: esta noche investigo a ver si hay algún driver y lo compilo o me quedo tranquilo si veo que el HW no es compatible… 30 minutos buscando, lspci y lsusb no muestran ninguna pista de cuál puede ser el dispositivo… desesperado voy a google y me topo con un vídeo que dice básicamente: ¡pulsa Fn + F6, mendrugo! y activa la cámara que la tienes apagada!!! jajaja. Ya aparece en el lsusb sin hacer nada y funciona perfectamente:
❯ lsusb | grep Bison
Bus 003 Device 005: ID 5986:014c Acer, Inc BisonCam, NB Pro
PD: Ayer mismo había hecho una llamada de Skype con mi familia y les dije: hoy no me veis la cara, en este portátil no me funciona la webcam 🙂
Me alegro de que ya tengas Webcam… En muchas ocasiones la solución mas sencilla es la que no tenemos en cuenta.
Falta decir que esto ya esta disponible
sudo add-apt-repository ppa:atareao/atareao
sudo apt update
sudo apt install webcam-indicator