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:

  1. Descargar e instalar la aplicación Camera Settings.
  2. Abrirla.
  3. 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:

gtk-v4l UI

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.