V4l2loopback para GNU/Linux
jueves, 7 de febrero de 2013V4l2loopback es un módulo para el kernel linux que llevaba tiempo buscando. Desde hace ya años vengo usando su versión obsoleta para V4L (y seguiré usando todavía bastante) y que permite acceder a un stream de vídeo de algunas de las webcams que tiene «secuestradas» Motion.
Hacía tiempo que busca la versión V4L2 pero aunque encontré algunos proyectos interesantes (este es el más desarrollado) por una cosa o por otra no acaban de funcionar. Mira tu por donde encontré un módulo que funciona perfectamente probando la aplicación Droidcam para el telefono.
Nota: aunque las anotaciones siguientes están probadas y comentadas para Linux (opensuse 11.4) todo es usable tanto en Windows como Mac, teóricamente.
Droidcam es una aplicación para Android que permite usar el teléfono como webcam innalambrica. Activas la cámara del teléfono y accediendo a ella desde el ordenador usarla para emitir videoconferencias (Skype) por ejemplo. Funciona sorprendentemente bien y es un esquema muy sencillo: Al lanzar Droidcam en el movil se inicia un servidor en el teléfono que se pone a la escucha tras mostrarnos una http://ip:puerto de conexión. A continuación iniciamos una mini-aplicación de escritorio que tras indicarle la referida http://ip:puerto de nuestro movil conecta con el teléfono, inicia la cámara y comienza a descargar el streaming de vídeo de su cámara volcandolo al dispositivo virtual de nuestro ordenador (/dev/video0 , por defecto).
Una vez hecho esto solo tenemos que decirle a Skype (u cualquier otra aplicación) que conecte con /dev/video0 para emitir la imagen captura desde el móvil como si una webcam innalámbrica se tratase.
Este dispositivo virtual /dev/video0 se crea en el momento que cargamos el módulo v4l2loopback
sudo modprobe v4l2loopback
y este módulo podemos descargarlo desde la web del desarrollador de Droidcam, solo es necesario descargar y hacer
make && sudo make install
¿que para que sirve v4l2loopback?
pues básicamente para reutilizar el streaming de vídeo de algún dispositivo ó archivo en otro dispositivo o archivo. Podemos, por ejemplo, volcar el contenido de una webcam pública rtmp://… en un /dev/video3 local y acceder a él como si se tratase de un dispositivo propio ó bien emitir en skype una película AVI de vídeo como si fuese nuestra webcam o hacer un streaming en nuestra web con nuestro álbum de fotos del viaje. En definitiva jugar de forma indefinida con un flujo de vídeo manipulando y aplicando efectos.
yuv4mpeg_to_v4l2 < /tmp/tuberia & mplayer /home/usuario/mis-películas/Skyfall.avi -vf scale=320:240 -vo yuv4mpeg:file=/tmp/tuberia
La líneas anteriores hacen uso de yuv4mpeg_to_v4l2 que podéis descargar y compilar desde aquí y lo que hacen es volcar a un archivo fifo temporal una película y a continuación pasar este streaming a un dispositivo que yuv4mpeg_to_v4l2 reconoce como gestionado por el módulo v4l2loopack (por eso no hay que indicar /dev/video0 en línea) y desde vide0 es ya accesible para otros programas. Un método identico al que ya usamos aquí y que podriamos usar para coger un streaming de internet y volcarlo como si fuese nuestra webcam.
Conectando la cámara del teléfono con Droidcam y v4l2loopback y accediendo a ella desde el escritorio con mplayer para mostrar lo que captura la videocámara conectada a /dev/video9 conseguimos un bonito bucle de pantallas.
Facus
#1/ 07 de February/2013 a 13:32:46
Otros comentarios de «Facus»
Muy buen apunte Trebol-a!
Me gusta que tengas un móvil con Android, así te pones a probar aplicaciones raras y las comentas por acá. Ya me picó la curiosidad y bajé Droidcam en mi móvil. Me gusta que solo pese unos kilobytes =) (ando corto de espacio de tantas apps que pruebo).
Me tienta la opción de transmitir imágenes de video usando la conexión 3G (solo en la versión paga de la aplicación), aunque con un poco de maña seguro encuentro un camino sin tener que pagar.
Un saludo!
Trebol-a
#2/ 07 de February/2013 a 16:02:21
Otros comentarios de «Trebol-a»
Gracias Facus,
Droidcam y el módulo para el kernel que comento arriba probablemente no lo usemos nunca. Quizás un día para de repente hacer una retransmisión a los amigos/familia y poco más, pero desde luego si hay alguna posibilidad de que sean útiles en ese u otro sentido es después de "haberle visto las tripas" y conocer un poco más las posibilidades que ofrecen, y ahí es donde el apunte encuentra lugar.
Por otro lado hay quien se lo pasa bien viendo a 22 corriendo detrás de un balón y otros que nos gusta ver lo que aguanta el kernel metiendole módulos de vídeo!! :D
02 de November, 2024 @ 13:54