August 28, 2016

Webcam con imagen invertida

Hola,

He recibido la calificación de mi ejercicio y ya tengo mi certificación.

Quiero agradecer a los encargados de la administración de este foro la ayuda prestada durante todo este tiempo.

Especialmente agradezco a Luis las gestiones administrativas que ha realizado y que iban más allá del soporte sobre el material de estudio, sin tu intervención, no hubiese podido examinarme.

Por último, como respuesta al mensaje de otro alumno, hice una reseña a un problema que me surgió con la cámara web durante el examen y quisiera comentarlo con algo más de detalle por si al equipo de linux foundation le interesa preavisar a futuros examinados. Lo que indico a continuación es de aplicación a quienes se vayan a examinar utilizando una distribución linux, aunque creo que el problema también se da en windows.

El problema está en la webcam de algunos portátiles de marcas como asus, lenovo o toshiba y consiste en que el navegador utilizado para realizar el examen, que es chrome o chromium, no recibe de modo correcto la señal de la webcam, mostrando la imagen invertida, con lo que el examinador no puede hacer un seguimiento correcto durante el ejercicio.

El asunto es más curioso aún ya que otros programas, por ejemplo cheese, que es una aplicación linux para grabar videos con la webcam, sí muestran la imagen correctamente, de modo que puedes ir confiado al examen pensando que tu webcam funciona correctamente y cuando empiezas a examinarte, te encuentras con la sorpresa de que al examinador le llega tu imagen boca abajo.

Para descartar que el problema fuera debido a una distribución en concreto, he comprobado que el problema ocurre en Debian y en Archlinux, devolviendo en ambas distribuciones una imagen invertida. Para testear si el portátil o la cámara que se va a utilizar durante el examen nos va a dar problemas, yo utilizo la aplicación mplayer.

mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot

Con esta orden mplayer muestra una ventana con la imagen que recibe de la cámara en /dev/video0. Si la imagen sale invertida, en el examen también saldrá invertida.

Para solucionar el problema hay que indicar a la aplicación que queramos usar con la cámara, que cargue la librería v4l1compat.so que pertenece al paquete v4l-utils para que la imagen sea la correcta. La ubicación de la librería depende de la distribución que estemos usando, en este ejemplo es la ubicación de la librería en Archlinux.

find /usr/lib/ -name v4l1compat.so

/usr/lib/libv4l/v4l1compat.so

Una vez que ya tenemos ubicada la librería, se la pasamos a la aplicación que vayamos a usar (chrome, skype, mplayer, etc.) para que la utillice:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so <aplicación_a_utilizar>

Para comprobar con el ejemplo anterior que mplayer ahora nos devuelve la imagen de modo correcto:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot

Para realizar el examen con chromium:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so chromium

Saludos

Click Here!