A mi me parece una herramienta bastante útil para multiplexar la cámara y evitarnos tener que hacer pipelines complicados con gstreamer. Así, por ejemplo podemos colocar un cameraserver y un servidor rtsp tirando de la misma cámara y evitarnos la parte de programar el servidor rtsp.<br>
<br><div>Muy útil!</div><div><br></div><div><br><div class="gmail_quote">2010/2/21 Roberto Calvo <span dir="ltr">&lt;<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Buenas,<br>
<br>
Buscando alguna solución para poder multiplexar la salida de vídeo de<br>
las webcams, he encontrado el módulo vloopback. Hasta el kernel 2.6.32<br>
no es módulo oficial de Linux y lo mantiene la gente de motion<br>
(aplicación libre de videovigilancia: detecta movimiento).<br>
<br>
El caso es que el módulo te permite crear pipes de dispositivos de vídeo<br>
(uno de entrada y otro de salida), y lo mejor de todo es que permite<br>
acceder a varios procesos simultáneamente al dispositivo.<br>
<br>
El funcionamiento es sencillo, cargas el módulo:<br>
<br>
[vloopback_init] : video4linux loopback driver v1.4-trunk<br>
[vloopback_init] : Loopback 0 registered, input: video1, output: video2<br>
[vloopback_init] : Loopback 0 , Using 2 buffers<br>
<br>
Lo que ha hecho es crear /dev/video1 y /dev/video2. Todo el flujo que<br>
metas en video1, se va a video2 automáticamente. Y lo mejor de todo es<br>
que video2 no es bloqueante, pueden acceder tantos procesos como<br>
quieras. En /dev/video0 está la webcam física, por tanto sólo es<br>
necesario correr un proceso que copie la salida de /dev/video0<br>
a /dev/video1 (viene en las fuentes del módulo, pero solo para v4l). El<br>
consumo de CPU de este programita viene a ser de un 5-8% de CPU.<br>
<br>
¿Y todo esto qué nos permite? Conectar infinitos procesos, programas,<br>
aplicaciones a /dev/video2 para obtener el flujo de datos de la cámara.<br>
Por ejemplo, he tenido conectado 2 xawtv, 1 ffmpeg grabando un vídeo y 1<br>
mplayer reproduciendo la webcam, mola!<br>
<br>
Además tiene más aplicaciones, por ejemplo se puede crear 2 pipes,<br>
video1-&gt;video2 y video3-&gt;video4, y hacer que video2 de la imagen a<br>
640x480 y video4 a 320x240 (por ejemplo).<br>
<br>
La única pega (por poner algo), es que el programita que pasa el flujo<br>
de /dev/video0 a /dev/video1, está hecho para v4l y funciona por ejemplo<br>
con una webcam philips antigua, pero no con las logitech (uvcvideo está<br>
en v4l2). La solución es portarlo a v4l2, y es factible porque son pocas<br>
líneas (de hecho, en ello estoy).<br>
<br>
¿Qué os parece como solución a meter en la infraestructura de JDEROBOT?<br>
<font color="#888888"><br>
--<br>
Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC)<br>
Tel: (+34) 91 488 85 23         | Universidad Rey Juan Carlos<br>
<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>            | Edif. Departamental II - Despacho 116<br>
<a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a>            | c/Tulipán s/n 28933 Móstoles (Madrid)<br>
<br>
GPG-KEY: <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
</font><br>_______________________________________________<br>
Jde-developers mailing list<br>
<a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
<a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
<br></blockquote></div><br></div>