Transformando seu Android em Webcam no Linux com Scrcpy (AppImage)


Usando o celular como webcam no Linux com scrcpy (AppImage)

Olá, pessoal! Inspirado em algumas discussões da comunidade, resolvi realizar um teste: empacotei o scrcpy como um AppImage e incluí um script para abrir automaticamente a câmera traseira do celular.
O objetivo é transformá-lo em uma webcam de alta qualidade para o Linux.

Infelizmente, ainda não é um processo de “um clique”, pois precisamos preparar o sistema com os drivers de vídeo (v4l2loopback), mas o funcionamento nos meus testes iniciais foi perfeito!
Confira o passo a passo abaixo :backhand_index_pointing_down:


1. Instalação dos pré-requisitos

Para que o Linux reconheça o celular como uma câmera, precisamos dos headers do kernel e do módulo de loopback de vídeo.
Exemplo para Arch Linux:

# Instale o android-tools
sudo pacman -S android-tools   

# ffmpeg
sudo pacman -S ffmpeg

# sdl
sudo pacman -S sdl2

# Atualiza o sistema e instala os headers e o driver v4l2loopback
sudo pacman -Syu linux-headers dkms v4l2loopback-dkms

# Reinicie o sistema para aplicar as mudanças de kernel
sudo reboot

2. Ativando a câmera virtual

Após o reboot, carregue o módulo do driver.
O comando abaixo cria um dispositivo de vídeo chamado Android Camera:

sudo modprobe v4l2loopback exclusive_caps=1 card_label="Android Camera"

# Verifique se o dispositivo foi criado (ex: /dev/video0, /dev/video1...)
ls /dev/video*

3. Configuração do dispositivo Android

Para que o computador se comunique com o celular, a Depuração USB deve estar ativa:

  1. Conecte o celular ao computador via cabo USB
  2. No Android, vá em ConfiguraçõesSobre o telefone
  3. Toque em Número da compilação (Build Number) 7 vezes
  4. Entre em Opções do desenvolvedor e ative Depuração USB

4. Executando o AppImage

Baixe o AppImage, conceda permissão de execução e execute:

:link: Download:
Para android mais antigos “cameras com baixa res”
scrcpy-x86_64_30fps.AppImage codec h264
Para android mais modernos “cameras com alta res”
scrcpy-x86_64_60fps.AppImage codec h265

# Conceda permissão de execução ao arquivo
chmod +x scrcpy-cam-x86_64.AppImage

# Execute o AppImage
./scrcpy-cam-x86_64.AppImage

Resultado

Pronto! :tada:
Agora o seu celular estará espelhando a câmera traseira e será reconhecido por aplicativos como OBS, Zoom e Discord através do dispositivo de vídeo virtual criado.


Alternativa: usando scrcpy oficial (sem AppImage modificado)

Quem não quiser usar o AppImage modificado pode instalar o scrcpy diretamente pela loja de aplicativos e obter o mesmo resultado manualmente.

Instalação

sudo pacman -S scrcpy
sudo pacman -S linux-headers dkms v4l2loopback-dkms
sudo modprobe v4l2loopback exclusive_caps=1 card_label="Android Camera"

Comandos para abrir as câmeras

:camera_with_flash: Câmera frontal

scrcpy --video-source=camera --camera-facing=front --camera-fps=60 --v4l2-sink=/dev/video0

:camera_with_flash: Câmera traseira

scrcpy --video-source=camera --camera-facing=back --camera-fps=60 --v4l2-sink=/dev/video0

Você pode ajustar várias opções, como resolução, FPS e outras configurações conforme a sua necessidade.


Projeto

:link: Repositório no GitHub:
https://github.com/Broly1/Scrcpy-Appimage


2 curtidas

Uma pequena demonstração usando Linux Mint em uma VM com um Pixel 4a 5G. A péssima qualidade é por causa da VM. Fiz um teste direto no Arch bare metal com um pixel 8 pro.

OBS detecta sem problema