Fazer streaming com a câmera do Raspberry e controles com V4L2

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 de video do RPi e como tocar a streaming em um computador remoto.

Instalação de pacotes no RPi

Primeiramente, tenha instalado todos os brinquedos necessários para iniciar a diversão.

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.

Disponibilizando a câmera

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.

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:

Estando tudo ok, passemos ao próximo passo.

Download do servidor RTSP e compilação

Baixe agora o código fonte do servidor RTSP:

Siga com os seguintes passos:

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:

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.




Imagem inicial da câmera
Imagem inicial da câmera

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:

bancada_baguncada
bancada_baguncada

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.

Updated

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:

lentes
lentes

 

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 newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.