Conectar un celular a tu GNU/Linux y usarlo como webcam
Muchas veces pasa que tenemos una reunión (meet) a través de zoom, google meet, jit.si o cualquier otra plataforma de videoconferencia y queremos utilizar el video en esto encuentros, pero no tenemos una webcam y tampoco queremos comprar una ya que la usaremos exporádicamente. Para eso existe una app que te permite conectar tu celular ( teléfono movil ) y utilizar la cámara de ese dispositivo como webcam.
La aplicación se llama SCRCPY está
disponible para Windows, MacOS y Linux.
Yo he realizado esto en mi Debian 13 pero se puede obtener también para Arch, Fedora y Gentoo. Como yo tengo y uso Debian 13 en lo cotidiano paso a detallar como lo hago para esta distro.
Según las instrucciones redactadas acá github primero debemos tener instalado estos requerimientos para que funcione la instalación que sigue luego de este paso. Abrimos la consola de GNU/Linux y tipeamos o pegamos esto.
sudo apt install ffmpeg libsdl3-0 libusb-1.0-0 adb wget \
gcc git pkg-config meson ninja-build libsdl3-dev \
libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
libswresample-dev libusb-1.0-0-dev libv4l-dev
También en mi caso yo ya tenía instalado lo siguiente por otras aplicaciones; pero es necesario tenerlo instalado, para saber que dispositivo está conectado entre otras cosas.
sudo apt install v4l2loopback-dkms android-tools-adb v4l-utils
Una vez que tenemos eso instalado sin que haya tirado error pasamos a la clonación de
SCRCPY y para eso hacemos lo siguiente en la linea de comandos:
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh
Para verificar qué número de cámara web virtual se te ha asignado podes utilizar este comando
v4l2-ctl --list-devices
En mi caso esto me devuelve:
Dummy video device (0x0000) (platform:v4l2loopback-000):
/dev/video0
Si lo anterior no tiró ningún error pasamos ejecutar el programa con una serie de parámetros para que tome nuestra cámara del celular (dispositivo móvil) y así poder usarla de webcam.
scrcpy --v4l2-sink=/dev/video0 --video-source=camera --no-video-playback --video-codec=h265 -m1920
Observar que yo puse en –v4l2-sink=/dev/video0 y lo pongo así porque el comando anterior de v4l2-ctl –list-devices me devolvió /dev/video0 si hubiese devuelto otro número debería poner ese número ahí en video1 o video2 o el número que haya devuelto.
Luego –video-source=camera le ordena a tu teléfono usar los sensores físicos de su cámara en lugar de clonar la pantalla normal del celular. Mientras que –no-video-playback evita que se abra una ventana flotante con tu cara en el escritorio de Linux, ahorrando recursos de tu procesador y tarjeta gráfica.
Si queres usar la cámara frontal podes ejecutar este comando en la terminal.
scrcpy --list-cameras
Te va a mostrar una lista de los diferentes formatos y cámaras que posee tu celular, en mi caso los resultados son estos:
--camera-id=0 (back, 4096x3072, fps={14, 20, 24, 30}, zoom-range=[1, 10])
--camera-id=1 (front, 2592x1944, fps={10, 15, 20, 24, 30}, zoom-range=[1, 10])
--camera-id=2 (back, 3264x2448, fps={10, 15, 20, 24, 30}, zoom-range=[1, 4])
--camera-id=3 (back, 4096x3072, fps={10, 15, 20, 24, 30}, zoom-range=[0.6, 10])
--camera-id=4 (back, 4096x3072, fps={10, 15, 20, 24, 30}, zoom-range=[1, 10])
Entonces para que use la cámara frontal el comando que debería ejecutar es este:
scrcpy --v4l2-sink=/dev/video0 --video-source=camera --no-video-playback --video-codec=h265 -m1920 --camara-id=1
Le agregué al final la opción –camara-id=1 que en el listado dice que es la cámara delantera (front).
Enjoy!!!