No suelo usar mucho VLC, ya que para todo lo referido a reproducción/codificación de videos con Mplayer/Mencoder me apaño de sobra, pero hay que reconocer que para algunas cuestiones, como la emisión de streamings de vídeo/audio, VLC les lleva mucha ventaja. Llevaba tiempo buscando algo parecido a esto, y el otro día leyendo sobre la siguiente versión de VLC descubrí que disponía de un plugin, Mosaic, que permite mostrar varios vídeos en una sola ventana a modo de mural de video. Ya sea simplemente para ver varias webcams al mismo tiempo, para volcarlas a un archivo nuevo ó para hacer streaming con ellas es un función muy interesante.

Ejemplo 1, cuatro cámaras compartiendo espacio.

Mosaic VLC II

En un archivo ejemplo.conf definimos 4 fuentes de vídeo procedentes de 4 dispositivos (en este caso 4 de las webcams que tengo ejecutandose en casa, pero pueden ser flujos de vídeo de internet, ficheros AVI, 4 carpetas de fotografías, etc…), a continuación creamoa una pista nueva (llamada FAKE, basta un simple jpeg) a la que aplica un filtro mosaic sobre el que se “proyectan” las cuatro pistas creadas anteriormente.

En este ejemplo la imagen de fondo solo es visible por un momento durante la ejecución del programa, siendo ocultada rápidamente por los 4 vídeos superpuestos, por lo el contenido de “fondo” es indiferente.

Copia y modifica el contenido de ejemplo.conf, guardalo y ejecutalo con: vlc −−vlm-conf webcams.conf
new comedero broadcast
setup comedero input v4l:///dev/video13:width=320:height=240:fps=15:norm=PAL:channel=1
setup comedero output #mosaic-bridge{id=1,width=320,height=240}
setup comedero enabled
new nido1 broadcast
setup nido1 input v4l:///dev/video15:width=320:height=240:fps=15:norm=PAL:channel=1
setup nido1 output #mosaic-bridge{id=2,width=320,height=240}
setup nido1 enabled
new nido2 broadcast
setup nido2 input v4l:///dev/video17:width=320:height=240:fps=15:norm=PAL:channel=1
setup nido2 output #mosaic-bridge{id=3,width=320,height=240}
setup nido2 enabled
new raton broadcast
setup raton input v4l:///dev/video21:width=320:height=240:fps=15:norm=PAL:channel=1
setup raton output #mosaic-bridge{id=4,width=320,height=240}
setup raton enabled
new fondo broadcast enabled
setup fondo input fake://
setup fondo output #transcode{sfilter=mosaic},vcodec=mp2v,vb=10000,scale=1.1}:bridge-in{delay=2400,id-offset=500}:display
setup fondo option fake-file="/home/trebol-a/fondo.png"
setup fondo option fake-width=640
setup fondo option fake-height=480
setup fondo option fake-fps=15
setup fondo option mosaic-keep-picture=1
setup fondo option mosaic-width=640
setup fondo option mosaic-height=480
setup fondo option mosaic-order="1,2,3,4"
setup fondo option mosaic-keep-aspect-ratio=1
control fondo play
control comedero play
control nido1 play
control nido2 play
control raton play

Ejemplo 2, 4 miniaturas sobre fondo de cámara

Viene a ser el ejemplo anterior excepto que hemos reducido el tamaño de los streaming de vídeo y reemplazado el fondo anterior por otro streaming de vídeo.
Toma nota de la opción “setup fondo option mosaic-position=1” por la cual decimos a VLC que no posicione los videos del mosaico de forma automática (por defecto este valor es 0) sino que se atenga las opciones pasadas.
Ademas hemos añadido un título sobreimpreso al vídeo de fondo.

Copia/modifica el contenido de ejemplo.conf, guardalo y ejecutalo con: vlc −−vlm-conf webcams.conf
new comedero broadcast
setup comedero input v4l:///dev/video13:width=320:height=240:fps=15:norm=PAL:channel=1
setup comedero output #mosaic-bridge{id=1,width=120,height=90}
setup comedero enabled
new nido1 broadcast
setup nido1 input v4l:///dev/video15:width=320:height=240:fps=15:norm=PAL:channel=1
setup nido1 output #mosaic-bridge{id=2,width=120,height=90}
setup nido1 enabled
new nido2 broadcast
setup nido2 input v4l:///dev/video17:width=320:height=240:fps=15:norm=PAL:channel=1
setup nido2 output #mosaic-bridge{id=3,width=120,height=90}
setup nido2 enabled
new raton broadcast
setup raton input v4l:///dev/video21:width=320:height=240:fps=15:norm=PAL:channel=1
setup raton output #mosaic-bridge{id=4,width=120,height=90}
setup raton enabled
new fondo broadcast enabled
setup fondo input v4l:///dev/video19:width=512:height=384:fps=15:norm=PAL:channel=1
setup fondo output #transcode{sfilter=mosaic:marq{marquee='Cinco camaras',position=8},vcodec=mp2v,vb=10000,scale=1.0}:bridge-in{delay=2400,id-offset=500}:display
setup fondo option mosaic-keep-picture=1
setup fondo option mosaic-width=512
setup fondo option mosaic-height=100
setup fondo option mosaic-cols=4
setup fondo option mosaic-rows=1
setup fondo option mosaic-xoffset=5
setup fondo option mosaic-yoffset=5
setup fondo option mosaic-position=1
setup fondo option mosaic-order="1,2,3,4"
setup fondo option mosaic-keep-aspect-ratio=0
control fondo play
control comedero play
control nido1 play
control nido2 play
control raton play