Utilizar una cámara IP o un móvil con RTSP como webcam

En caso de no disponer de una webcam podemos utilizar una cámara IP o un móvil instalando una app que sirva el vídeo de la cámara a través de RSTP. Vamos a ver que en Linux es muy sencillo.

Paso 1.- Posibilitando webcams virtuales

Lo primero que tenemos que hacer es crear unas «webcam virtuales» en nuestro equipo. En nuestro caso vamos a crear tres «webcams virtuales» que serán /dev/video10, /dev/video11 y /dev/video12. Aprovechamos también para instalar ya la aplicación ffmpeg para poder inyectar el vídeo de la cámara IP en una de las fake webcams:

sudo apt update
sudo apt-get install v4l2loopback-dkms ffmpeg

Paso 2.- Creando las webcams virtuales.

Vamos a crear los tres dispositivos virtuales. Para ello, añadimos a las tres cámaras al fichero de configuración en /etc/modprobe.d/virtualcams.conf. Nos creará los dispositivos /dev/video10, /dev/video11 y /dev/video12. Le asignaremos también un nombre a cada cámara que serán virtual10, virtual11 y virtual12: (copia y pega en la línea de comandos las 4 líneas siguientes a la vez)

echo options v4l2loopback devices=3 video_nr=10,11,12 \
card_label="Virtual10","Virtual11","Virtual12" exclusive_caps=1,1,1 | sudo tee -a \
/etc/modprobe.d/virtualcams.conf

Hacemos que se creen al iniciar el ordenador:

echo v4l2loopback | sudo tee -a /etc/modules-load.d/virtualcams.conf

Recargamos el módulo del kernel que hace funcinar las cámaras virtuales:

sudo modprobe -r v4l2loopback
sudo modprobe v4l2loopback

Paso 3.- Probándolo todo.

Inyectamos el vídeo mediante el siguiente comando. Tenemos que saber la dirección IP del servidor RTSP ya sea la cámara IP o la de nuestro dispositivo móvil, el puerto por el que escucha el servidor (normalmente el 554 en las cámaras IP) y el usuario y contraseña si lo hubiera.

ffmpeg -i rtsp://usuario:contraseña@DIR_IP:PUERTO -vf format=yuv420p -f v4l2 /dev/video10

Lo probamos con algún servicio online de videochat. Por ejemplo Jitsi meet o con el mismo vlc mediante la orden:

vlc rtsp://usuario:contraseña@DIR_IP:PUERTO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *