Stream de Video no Linux Maemo para uso do N900 como Webcam

Publicado por Alan em 07/07/2011

[ Hits: 7.447 ]

Blog: http://www.informaticainove.com.br

 


Stream de Video no Linux Maemo para uso do N900 como Webcam



Pesquisando bastante na Internet como utilizar meu N900 como Webcam ou Câmera de Segurança, não encontrei muita informação e após muitos testes estou aqui para dividir esta dica com a galera do VOL.

Esta dica foi feita para a distribuição Linux Maemo que é baseada no Debian.

O stream utilizará o VLC como cliente para acesso ao vídeo.

Será necessário o download do pacote gstreamer-tools.

Vamos aos passos:

1) Conectado a Internet e logado como root baixe o pacote gstreamer-tools:

# apt-get install gstreamer-tools

2) Em /usr/local/bin, crie os seguintes scripts:

Script: stream-camera0

# cd /usr/local/bin
# nano stream-camera0

Dentro do arquivo stream-camera0, copie e cole estas linhas:
gst-launch v4l2src \ ! videoscale ! video/x-raw-yuv,width=320,height=240,framerate=30/1 ! dsph264enc ! rtph264pay ! udpsink host=x.x.x.x port=5000
#x.x.x.x é o ip do computador

Obs.: Todo o comando precisa estar em uma única linha ou será necessário quebrar o comando com a barra "\".

Script: stream-camera1

#nano stream-camera1

Dentro do arquivo stream-camera1, copie e cole estas linhas:
gst-launch-0.10 v4l2src device=/dev/video1 ! dsph264enc ! rtph264pay ! udpsink host=x.x.x.x port=5434
#x.x.x.x é o ip do computador

O primeiro script irá habilitar o stream de vídeo na câmera do fundo do aparelho o segundo irá habilitar a câmera da frente do aparelho.

Precisamos deixar os dois scripts executáveis:

# chmod +x /usr/local/bin/stream-camera0
# chmod +x /usr/local/bin/stream-camera1

Para testar vamos usar um dos scripts:

# stream-camera1

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock


Isso quer dizer que já está funcionando. No caso da câmera da frente, o Led indicador ficará vermelho informando que está funcionando.

Aperte CTRL+C para cancelar a execução do script.

Agora vamos testar. Você precisa ter o VLC instalado no computador.

Para a câmera secundaria, crie o arquivo abaixo.

Obs.: Usuário do Windows pode criar o arquivo em bloco de notas, clicar em salvar, em formatos escolher "todos os arquivos" e no nome do arquivo colocar "vlc-camera0.sdp", o mesmo serve para o outro arquivo.

Arquivo vlc-camera0:
v=0
m=video 5000 RTP/AVP 96
c=in IP4 x.x.x.x #ip do celular
a=rtpmap:96 H264/90000

Arquivo vlc-camera1:
v=1
m=video 5434 RTP/AVP 96
c=IN IP4 x.x.x.x #ip do celular
a=rtpmap:96 H264/90000

Depois é só abrir com o VLC o arquivo da câmera em execução no N900.

Mais dicas:
  • A porta de acesso pode ser a porta de preferencia do usuário, desde que seja alterada nos arquivos do VLC e do N900.
  • Para melhor qualidade na câmera do fundo, abra a lente e não feche o programa de captura de fotos, depois execute o script da devida câmera, o celular irá apresentar um erro e irá fechar o programa de captura para abrir o stream de vídeo, porém agora a qualidade estará bem melhor.
Quem souber como melhorar a iluminação e cores do stream, eu agradeço.


Outras dicas deste autor

Controlando nova interface com HTB + controle de download com upload automático por usuário

Instalando aMSN no Slackware 12 e 12.2 da forma mais simples possível

Instalando EyeOS no Slackware 12 e 12.2 sem mistérios

VPN PPTP Windows 2003 Server + GRE + Slackware 12

Leitura recomendada

Servidor de CD's simples no Linux

Arch Linux: Otimizando o seu makepkg para sua arquiterura

Acompanhando o log do servidor de e-mail

Testando desempenho de seu Web Server com SIEGE

Criando uma chave privada (OpenVPN)

  

Comentários
[1] Comentário enviado por barklome em 07/07/2011 - 18:17h

Muito bom mano!
Vou testar logo,sou programador e tenho esse celular!

[2] Comentário enviado por rogeriojlle em 07/07/2011 - 23:01h

nesse modelo de telefone, as câmeras são acessadas via /dev/videoX ou o gst-launch "emula um dev/video" e captura as imagens de outra forma?

[3] Comentário enviado por barklome em 09/07/2011 - 14:37h

são acessadas sim pelos device nodes
Esse celular é um Linux realmente,não um Android(quem entende de EmbeddedLinux sabe bem a diferença)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts