Videoconferencia con cámara digital y marca de agua
sábado, 11 de enero de 2014Si necesitáis hacer videoconferencia con algo más de calidad de imagen de la que suelen ofrecer las webcams comerciales standard una opción a tener en cuenta es usar nuestra cámara de fotografía ó videocámara.
Casi todas las cámaras digitales modernas, incluso las de gama baja, disponen de una conector salida VGA con la que podemos enviar la imagen a cualquier dispositivo grabador/reproductor como el televisor ó nuestro PC si este dispone de capturadora de vídeo ( si no tenéis tarjeta capturadora en Ebay podéis conseguir modelos PCI muy básicos y perfectamente válidos por 10-15 euros).
Para ver la imagen de cámara (GNU/Linux, openSuse 11.4) simplemente conecta el cable de la cámara a la tarjeta capturadora y en un terminal escribesmplayer tv:// -tv device=/dev/video1:driver=v4l2:width=320:height=240
Aplicar filtros y convertir V4l2 a V4l
Si en algún momento te pierdes hecha un vistazo a este apunte anterior: V4lo2loopback para Linux.
Una vez tengo la cámara conectada al PC cargo el módulo v4l2loopback_dcsudo modprobe v4l2loopack_dc
Creo una tubería
mkfifo /home/trebol-a/tuberia_logo.pipe
Convierto mi logo en formato PNG de 200×80 pixels de marca de agua a RGBA y lo vuelco en la tubería según las especificaciones del filtro de Mplayer.
convert logo.png logo.rgba
(echo "RGBA32 200 80 10 10 0 1"; cat "/home/trebol-a/logo.rgba" ) > /home/trebol-a/tuberia_logo.pipe &
Ahora cogemos la imagen de cámara con Mplayer, la volcamos a otra tubería creada específicamente desde donde yuv4mpeg_to_v4l2 tomará la imagen enviándola al dispositivo /dev/video0 creado por el módulo v4l2loopback_dc.
mkfifo /home/trebol-a/tuberia_mplayer.pipe
yuv4_mpeg_to_v4l2 < /home/trebol-a/tuberia_mplayer.pipe & mplayer tv:// -tv device=/dev/video1:width=320:height=240 -vf bmovl=0:0:/home/trebol-a/tuberia_logo.pipe -vo yuv4mpeg:file=/home/trebol-a/tuberia_mplayer.pipe
Ahora en la consola se quedaría Mplayer codificando en tiempo real la imagen de la videocámara y enviandola al dispositivo /dev/video0 desde donde Skype puede cogerla como si fuese un dispositivo nuevo.
El filtro bmovl de mplayer lee en tiempo real la tubería tuberia_logo.pipe y sobre imprime la imagen rgba sobre el vídeo. Podéis ajustarlo en tiempo real simplemente haciendo en consola(echo "RGBA32 200 80 45 33 0 1"; cat "/home/trebol-a/logo.rgba" ) > /home/trebol-a/tuberia_logo.pipe &
Donde:
200 = ancho de imagen
80 = alto imagen
45 = posición X de la imagen
33 = posicion Y de la imagen
0 = transparencia del canal alfa
1 = borrar/mantener imagen logo anterior
Obviamente la orden -vf de Mplayer podéis ampliarla con más filtros con los que mejorar la imagen de la videocámara además de añadir la marca de agua.
En mi caso estoy usando:-vf eq2=0.9:1.1:0:1.4:1.0:1.0:1.2,yadif=1,unsharp=l3x3:2,expand=0:-60,bmovl=0:0:/home/trebol-a/.logo.pipe
Donde:
Ajustes de nivel y color: eq2=0.9:1.1:0:1.4:1.0:1.0:1.2
Elimina el entrelazado de videocámara: yadif=1
Enfoca imagen: unsharp=l3x3:2
Panorámica en imagen cuadrada: expand=0:-60
Marca de agua: bmovl=0:0:/home/trebol-a/.logo.pipe
17 de November, 2024 @ 08:03