Manual
do
Maker
.
com
No artigo anterior sobre a câmera V2 do Raspberry Pi fiz apenas a apresentação da câmera. Nesse tutorial apresento os controles com V4L2, como Fazer streaming com camera do Raspberry e como tocar a streaming em um computador remoto.
Primeiramente, tenha instalado todos os brinquedos necessários para iniciar a diversão.
sudo su
apt-get install build-essential git v4l-utils
O build-essential trará o conjunto de ferramentas necessário para compilação. O v4l-utils será utilizado para controlar a câmera e o git, obviamente, para baixar o código do nosso servidor rtsp.
Para que você possa controlar a câmera com v4l2 ou vlc ou qualquer coisa fora o raspistill e o raspivid, será necessário que tenha o dispositivo /dev/video0 disponível. Então o primeiro passo é levantar o módulo que cria esse dispositivo da câmera para você. Se precisa ainda fazer os primeiros passos (configurar a câmera), leia esse outro artigo.
modprobe bcm2835-v4l2
Adicione o nome do módulo também ao /etc/modules para que você o tenha disponível a cada boot. Verifique após levantar esse módulo que (em caso de não haver erro) você encontrará o dispositivo de video em /dev:
ls /dev/video0
Estando tudo ok, passemos ao próximo passo.
Baixe agora o código fonte do servidor RTSP:
git clone https://github.com/codemonkeyricky/pi_streamer.git
Siga com os seguintes passos:
cd pi_streamer/target
make app
./app >/dev/null
Não havendo erro, você terá a streaming disponível em rtsp://192.168.1.16:8554/pi_encode.h264. Agora você já pode ir ao seu outro dispositivo e conectar ao Raspberry. Inclusive, tem vlc para Android, portanto até de seu smartphone você poderá acessar a câmera do Raspberry. Enfim, tenha o vlc instalado e siga como demonstrado:
vlc -v rtsp://192.168.1.16:8554/pi_encode.h264
A minha câmera está pessimamente posicionada sobre o ferro de solda com o Raspberry pendurado pelo cabo curto do HDMI ao monitor de 7 polegadas. Ele está apontando para o teto, pegando minha prateleira superior, um canto do batente da porta e mais nada. Repare primeiramente como a imagem está inicialmente, depois assista o video com os ajustes.
Eu sei, não parece nada. Eu ainda estou escrevendo, não sei se reposicionarei a câmera, estou com preguiça. Para você se situar, a câmera está aqui:
Essa imagem é de um ambiente do canto da casa, onde mal chega a única luz que estou mantendo ligada agora às 00:25 do dia 28 do mês desse artigo.
A partir desse parágrafo já é o segundo dia desse artigo, ao qual estou dando continuidade. Com todo o ânimo possível, retomei o artigo, posicionei a câmera "mazomêno" com fita adesiva, liguei a luz da bancade e enviei alguns comandos via v4l2-ctl. Usei esse comando já com streaming rodando, em um outro Raspberry Pi 3 com a câmera v1.3 e surtia efeito em seguida. Gravei meu desktop para mostrar a streaming, mas não poderei mostrar ajustes com o v4l porque simplesmente os comandos não surtiram efeito. Enfim, é possível fazer um pós-processamento na imagem, mas o ideal é fazer ajustes para que a imagem saia corrigida pela câmera, de forma a reduzir processamento.
Durante escrita do parágrafo anterior (não digito como um escrivão ouvindo uma narrativa) a streaming mó-rrrrréu, com todos os erres do lado direito. Reiniciei o servidor rtsp e reabri o vlc no meu ultrabook. A causa certamente está ligada ao meu ultrabook que já gastou toda sua memória e toda a swap reservada, mas não pude certificar ainda, então prefiro avisar que "pode ocasionalmente" acontecer uma parada na streaming; teste.
O video para demonstrar o conceito está ao final. Agora vou falar de uma outra coisa interessante; que tal uma lente para grande angular, uma para wide e uma para macro - tudo isso por menos de 8 reais? Ótimo, não? Pois é, por tão pouco você pode ter esses resultados em sua câmera do Raspberry:
Bem, não tem muito o que mostrar em meu apartamento, bastante pequeno como você pode ver. Mas se quiser adquirir umas lentes dessas, é só fazer uma busca no mercado livre por "kit lentes celular".
Pra terminar, a imagem está meio horrivel no v4l, mas a imagem da câmera é espetacular, muito provavelmente o problema está no encoder ou no decoder da streaming.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.