A veces puedes tener una webcam en la que se observa un parpadeo (“flickering” en inglés).
¿Cómo resolverlo?
En mi caso, tengo una Logitech C920 HD Pro y me producía ese problema.
Por qué ocurre
Normalmente es porque la cámara está trabajando a 60 Hz y el monitor a 50, o viceversa.
Cómo resolverlo en Windows
Para mi cámara en concreto, fue sencillo:
- Descargar e instalar la aplicación Camera Settings.
- Abrirla.
- Configurar la tasa de refresco de la cámara para coincidir con la del monitor.
Cómo resolverlo en Linux
En Linux también es sencillo de hacer si instalas el paquete gtk-v4l
. Si estás en Fedora 35:
# Instalar el paquete
sudo dnf -y install gtk-v4l
# Ejecutar la aplicación (también la encontrarás en el menú)
gtk-v4l
Te abrirá una interfaz gráfica desde la cual alterar ese parámetro (“Power Line Frequency” en la foto) y muchos otros:
La dificultad estriba en hacer ese cambio permanente, ya que lo que cambies aquí se deshará tras tu próximo reinicio.
Para ello, es necesario crear una regla udev
. En este vídeo y este blog (ambos en inglés) explican muy bien cómo “cocinar” tu regla, así que paso a poner aquí la mía:
SUBSYSTEM=="video4linux", \
SUBSYSTEMS=="usb", \
ATTRS{product}=="HD Pro Webcam C920", \
ATTRS{idProduct}=="082d", \
ATTRS{idVendor}=="046d", \
PROGRAM="/usr/bin/v4l2-ctl --device $devnode --set-ctrl power_line_frequency=1"
La guardo en /etc/udev/rules.d/100-yajo-logitech-webcam.rules
. Obviamente, para esto necesitamos tener instalado v4l2-ctl
, así que para ello:
sudo dnf install -y v4l-utils
systemctl reboot
Tras el reinicio, tu webcam estará funcionando como debe.