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, como yo, en Fedora Silverblue 35, lo más sencillo será instalarlo en un toolbx:

toolbox run sudo dnf -y install gtk-v4l
toolbox run 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:

rpm-ostree install v4l-utils --reboot

Tras el reinicio, tu webcam estará funcionando como debe.