Transforme o seu celular Android em webcam sem fio na plataforma Linux

Neste documento veremos como transformar o seu celular Android em dispositivo de vídeo captura, mais especificamente uma webcam. Com este recurso, softwares como skype e outros de videoconferência poderão utilizar o seu celular como uma câmera sem fio.

[ Hits: 55.687 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 16/04/2012 | Blog: http://assuntonerd.com.br


Introdução



Utilizar o celular como dispositivo de vídeo captura, traz o benefício econômico (dispensa a necessidade de comprar uma webcam), como também podemos utilizar o aparelho telefônico como uma câmera sem fio e totalmente transparente ao sistema operacional.

Imagine durante uma vídeo conferência no Skype, você simplesmente carregar o seu telefone de um lado e para o outro e transmitindo ao vivo a imagem. Processar em tempo real com visão computacional no servidor, as imagens do celular enquanto caminha. Efetuar o reconhecimento facial na multidão com processamento no desktop como se fosse uma webcam.

O objetivo deste documento não é trazer aplicabilidades para este recurso. Então fica a cargo de sua imaginação do que fazer com um dispositivo sem fio transmitindo vídeo ao vivo para o seu sistema operacional GNU/Linux.

Aplicativos que agregam funcionalidades de outros aparelhos em nosso Android, são sempre bem vindo. O aplicativo foi desenvolvido pela Dev47 (www.dev47apps.com), e disponibilizado no Google Market (agora denominado Google Play).

A mágica do Droidcam esta na comunicação o PC através da rede WiFi ou por cabo USB (em ADB Bridge). O conceito de funcionamento é simples, basta primeiramente executar o aplicativo no smartphone, e logo em seguida o IP e a porta sera exibida, então informe no desktop o IP e a respectiva porta e depois clicar no botão connect, a câmera é acionada automaticamente.
Linux: Transforme o seu celular Android em webcam sem fio na plataforma Linux.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Download e instalação
Outros artigos deste autor

Como fazer o seu servidor Linux enviar avisos em seu celular Claro sem custo

Dia: O Editor de diagrama (Microsoft Visio) para Linux

Como instalar um display LCD em seu servidor Linux

Membro da comunidade Viva O Linux na Espanha

openCertiface: Biométrica Facial em nuvem baseada em software livre

Leitura recomendada

KDE Connect: Integrando o ambiente Android com o desktop Linux

Debian no Android "from scratch"

DriveDroid - Transforme o seu Android em um pendrive bootável

Chromecast - Upgrade de sua TV LED sem Wi-Fi

Genymotion - Emulando Android no GNU/Linux

  
Comentários
[1] Comentário enviado por fernandoborges em 16/04/2012 - 10:49h

Parabéns! Sempre trazendo artigos bacanas com novidades incríveis!
Vou testar hoje à noite...

[2] Comentário enviado por rogeriojlle em 16/04/2012 - 11:56h

só complementando a dica do cabelo, tem outro programa que utilizo que dá o mesmo resultado; pra quem não tiver cartão de crédito ou não quer/pode gastar (sem desmerecer o trabalho de ninguém, já que o software apresentado pelo pelo nosso colega tem interface gráfica, é bem fácil de usar, etc e tal), existe uma alternativa (originalmente pra ubuntu/arch) mas que pode ser adaptada para sua distro preferida. Eu uso no Opensuse, embora sem som.
https://play.google.com/store/apps/details?id=com.pas.webcam&hl=pt_BR
na página gerada pelo aplicativo tem um link para o github que instala os devidos softwares em seu computador.
o legal é que depois de tudo instalado voce vai perceber que pode transformar qualquer coisa em webcam, não só o seu android, embora o script esteja otimizado para ele.
Tem alguns macetes que é bom dizer:
certifique-se de que você tenha o pacote curl instalado (distros recém-instaladas nem todas tem), pois o script não verifica isso e é interrompido
se você trocar/atualizar de kernel, tem de reinstalar o pacote do driver loopback e reiniciar o computador mais uma vez, embora dê a ideia que isso foi feito pelo script de atualização

link do script:
https://github.com/bluezio/ipwebcam-gst/

[3] Comentário enviado por cabelo em 16/04/2012 - 12:25h

Ola rogeriojlle:

Obrigado pela sugestão, já conhecia o ipwebcam. Para não causar confusão, acho importante deixar algumas considerações (não interprete como crítica ou justificativa):

1 - Existe a versão gratuita do droidCamX conforme mencionada no aqui no artigo:
https://play.google.com/store/apps/details?id=com.dev47apps.droidcam

2 - Existem muitas alternativas similares de com o código fontes disponíveis, como por exemplo SmartCam:
http://sourceforge.net/projects/smartcam/

3 - Avaliei todas as opções, escolhi o droidCamX por ser mais fácil e o mais compatível com varias versões de kernel.

4 - O texto ficaria muito grande se eu mencionasse todas os pacotes disponíveis.

5 - O IP-cam não é transparente ao sistema operacional, ou seja não cria um device /dev/video[N]. Embora seja possível com loopback e outras técnicas. Mas preferi disponibilizar um artigo para leigos. Para acabar com a conversa mole que no Linux é tudo difícil.


Abraços e obrigado novamente.

[4] Comentário enviado por matux em 16/04/2012 - 14:02h

Cabelo,
Parabéns pelo artigo, muito útil.
Fiz o teste aqui, mas deveria abrir algum player do vídeo quando a aplicação fosse iniciada no PC ou é necessário algum outro player para ver o fluxo de vídeo?
Me conecto com a aplicação no celular, mas não abre o vídeo.

Esse é o meu "lsmod", reparei que não aparecer o "uvcvideo" como no seu.

matux@PC-Desktop:~/programas/droidcamx$ lsmod | grep droidcam_v4l
droidcam_v4l 5591 0
videodev 34361 1 droidcam_v4l

Tem algum idéia do que seja?
abraço!

[5] Comentário enviado por cabelo em 16/04/2012 - 14:55h

Matux

Após a execução do aplicativo execute o mplayer, vlc ou um player de sua preferência, lembre-se que se nenhuma webcam embutida existir o dispositivo será /dev/video0 caso contrário /dev/video1.

Abaixo um exemplo com o MPlayer e VLC

mplayer -tv driver=v4l2:width=640:height=480:device=/dev/video1:fps=30:outfmt=yuy2 tv://

vlc -vvv v4l2:// :v4l2-dev=/dev/video1

[6] Comentário enviado por matux em 16/04/2012 - 15:23h

Cabelo,

Testei com a seguinte linha de comando e funcionou:

# mplayer -tv driver=v4l2:width=640:height=480:device=/dev/video0:fps=30:outfmt=yuy2 tv://

Testado e Aprovado!

Ps. Pena que não funciona o áudio para esta aplicação. :(

[7] Comentário enviado por cabelo em 16/04/2012 - 15:56h

matux:

O audio funciona sim, testei aqui com o VLC !

[8] Comentário enviado por matux em 17/04/2012 - 02:08h

Cabelo,

Maravilha!
Pesquisei algumas opções para carregamento do áudio e não consegui.

O último teste que fiz foi com esse comando:

cvlc v4l2:///dev/video1 –v4l2 -caching=6500 –v4l2-width=420 –v4l2-height=320 –input-slave=alsa://hw:1,0 –alsa-samplerate=16000

Mas ainda sim não consegui capturar o áudio. :(

Mais alguma dica? :D

[9] Comentário enviado por marceloviana em 17/04/2012 - 18:23h

Cabelo,
Muito boa a dica!
Se juntar seu documento com o artigo do Silvio (OpenMeeting 1.9.1 - Instalando no Debian Squeeze virtualizado) dará uma implementação e tanto de vídeo-confêrencia com câmera portátil/dinâmica.

Parabéns e muito obrigado.

[10] Comentário enviado por emccomputadores em 17/04/2012 - 18:56h

Muito interessante as modificações que conseguimos fazer nos celulares por ele ser da plataforma linux.

[11] Comentário enviado por Polnoraref em 24/04/2012 - 10:27h

Muito bom o Artigo fiz aqui e deu certo td perfeito mas é o seguinte, é possível configura-lo com o emesene ou amsn ?? se for possível me explica como faz

Outra duvida

Usamos o droidcam até onde o sinal do nosso roteador alcançar para podermos visualiza-lo no PC entretanto seria possivel configura-lo para transmitir som e imagem usando a internet ou uma intranet; ou seja sera possível usa-lo de qualquer canto do mundo como se estivéssemos dentro de casa ?? Seria mais funcional se estiver essa opção

[12] Comentário enviado por andersonf23 em 07/05/2012 - 19:14h

Muito massa!

[13] Comentário enviado por carlosalberto4ti em 02/10/2012 - 17:08h

Bom até o momento não consegui encontrar um software para o celular ancroid com as seguintes funções :

- Auto inicia no boot do celular
- Seja opensource (qualquer licença)

Seria interessante também :
- Que ao ser aberto fosse solicitado senha para administrar o esse software (ou outro software que faça esse bloqueio ao software do android) .
- Atrás de nat , houvesse como o mesmo se comunicar um o seu servidor e conseguir transmitir , isso tem o redirecionamento de ip no firewall .(ou alguma dica de vpn ou outra coisa que conssiga fazer o mesmo)


Motivo , deixar o tablet e celulares de casa , sendo gravados no zoneminder , assim teria um monitoramento em tempo real e gravado , sem precisar instalar cameras de vigilancia .

Se tiverem indicação ficarei feliz em testa-la e reportar

[14] Comentário enviado por alancads em 07/02/2013 - 20:58h

Massa d+ Cabelo!

Até adicionei no tópico a sua dica em nosso canal #android-br na irc.freenode.net

[]'s



[15] Comentário enviado por henryvieri em 12/08/2013 - 14:00h

Interessante cara, vlw pela dica.

[16] Comentário enviado por removido em 01/10/2013 - 01:26h

Dica pra usar com cabo USB

Siga os mesmos passos de instalação citado na postagem do Cabelo
No android baixe o app droidcam cliente, ou faça o download aqui http://www.mediafire.com/?g8yfpx2lsgsg3d8.

No celular vai em Menu -> Configurações -> Conexões sem fio e rede -> Ancoragem e Roteador Wi-Fi e marque a opção Ancoragem USB

No linux digite os comandos:
# ifconfig usb0 up
# dhclient usb0

Obs.: Essa configuração faz com que seu arquivo /etc/resolv.conf seja alterado, basta acrescentar no final do arquivo um nameserver de sua preferência, para que você consiga acessar a internet no seu computador.

Colocando dois servidores em escuta, um para seu celular conectar e outro para o seu computador conectar através do programa droidcam.

$ nc -vv -l -p 4747 | nc -vv -l -p 2000

No celular vai no aplicativo droidcam (cliente) no menu opções clique em "Connect to DroidCam (WI-FI) Server" depois em "Add new Server" e digite o ip da interface usb0, clique em "Save", após isso basta clicar "Description [...]".

Agora no linux abra o droidcam
$ droidcam &

Marque a opção Wi-Fi/LAN
Phone IP: 127.0.0.1
DroidCam Port: 2000
Clique em connect

Pronto!!
Agora faça o teste!!
$ vlc v4l2:// :v4l2-dev=/dev/video0

[17] Comentário enviado por henryvieri em 12/10/2013 - 01:03h

Muito bom artigo, parabéns....

[18] Comentário enviado por airanabdalla em 10/11/2013 - 13:21h

Como faço para instalar o droid cam pelo terminal?

tenho lubuntu 32 bits e da erro ao digitar aquele tar. Quero usar o SUDO

[19] Comentário enviado por pedrox86 em 03/04/2014 - 15:23h

Boa cabelo!

[20] Comentário enviado por dtgfranca em 06/05/2014 - 08:33h

Muito bom , não vejo a hora de chegar em casa para fazer o teste :D !

[21] Comentário enviado por alvaroted em 25/01/2015 - 16:58h

Galera, tenho pouca experiência no linux, e quando tentei instalar o programa apareceu a seguinte:
alvaro@linux-7wf5:~/Desktop> sudo ./install
-- INSTALL: Webcam parameters: '640' and '480'
-- INSTALL: Home directory: /home/alvaro/.droidcam
-- INSTALL: Building v4l2loopback-dc.ko
make -C /lib/modules/`uname -r`/build M=`pwd`
make: *** /lib/modules/3.11.10-25-desktop/build: Arquivo ou diretório não encontrado. Pare.
make: ** [all] Erro 2
-- INSTALL: v4l2loopback-dc.ko not built.. Failure


Como faço para superar esse problema?
Abraços.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts