Conexão embarcado-servidor

Para utilização do Raspberry Pi avaliou-se que o sistema operacional Raspian seria o com maior gama de ferramentas para realização do projeto. O sistema operacional foi instalado com sucesso após alguns problemas de alimentação do Raspberry pi 3.

A conexão entre o Raspberry Pi e o servidor é feito através da rede local, o que é facilmente realizado dentro da interface gráfica do Raspian, como se pode ver na figura abaixo.

Resultado de imagem para raspbian

  • Envio de informação no embarcado

Com o Raspberry e Servidor conectados à rede, utiliza-se a ferramenta NetCat no embarcado para o envio de dados coletados pela câmera Pixy.

Construiu-se um script em Bash, que de tempos em tempos determinados, envia um arquivo de texto contendo os últimos dados coletados pela pixy. Para isto, é necessário que se ajuste o IP do servidor na rede, e a porta em que ele estará esperando a informação.

Raspicam

  • Comunicação entre Embarcado e Raspicam

Como já abordado, o sistema operacional selecionado foi o Raspian. Este, define algumas ferramentas em linha de código nativamente para manipulação da Raspicam. Os comandos básicos para uso da câmera são:

  • Raspistill
    • Tira fotos estáticas com o módulo
    • Exemplo:
      raspistill -o cam.jpg

Tira uma foto estática do ambiente e salva na pasta padrão. O parâmetro -o indica o nome do arquivo. Outras opções de configurações estão disponíveis como -hf e -vf para rotacionar a imagem, entre outras.

  • Raspivid
    • Grava vídeo com o módulo
    • Exemplo:
      raspivid -o vid.h264

Comando básico que grava 5 segundos de vídeo no formato padrão H264 e salva na pasta padrão, muitas outras opções estão disponíveis, como determinar o tamanho do vídeo, mudar o formato de saída e etc.

  • Time-lapse
    • Tira fotos regularmente e as une em um vídeo
  • Raspiyuv
    • Tira fotos estáticas e gera fotos sem processamento em formato orginial

A documentação completa com os outros muitos comandos podem ser encontrados aqui.

●  Encapsulamento do dados da Raspicam

Como discutido acima, já sabemos como gravar vídeos com a Raspicam e como configurar opções para a gravação. Com alguma pesquisa de como realizar o Streaming de vídeo com o Raspberry, identificou-se uma forma que se mostrou bem conveniente para o grupo, realizar o Streaming direto para o youtube!

Para isto serão necessário fazer-se uso de duas funcionalidades, primeiramente o pipes do Raspian, pois com ele será acessado o vídeo com o Raspivid e enviado direto para o FFmpeg que será a ferramente que auxiliará no streaming.

○ FFmpeg

FFmpeg é um ferramenta para diversas plataformas com poder de gravar, converter e realizar streaming de áudio e vídeo em diversos formatos. As funções do FFmpeg estão disponiveis através de linha de comando, ele é composto por uma coleção de software livre e bibliotecas de código aberto.

Como a biblioteca da Raspicam, o FFmpeg possui muitas úteis flags e opções de configuração, todas estas podem ser encontradas aqui.

Feito o estudo de com o FFmpeg, chega-se a uma grande linha de comando que configura como o vídeo deve ser gravado e como deve ser transmitido pelo FFmpeg, o tutorial seguido encontra-se aqui, contudo algumas alterações que o grupo achou mais conveniente foram realizadas para melhor se adequar ao objetivo do grupo.

raspivid -o - -t 0 -vf -hf -fps 30 -n -b 6000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/chaveYoutube

 

No fim do comando, é necessário que se insira a chave do canal que realizará o streaming, feito isto e executado após alguns instantes o canal inicializará o streaming e fica disponível  no YouTube.

Alguns testes foram realizados com este método de streaming, um dos streaming se encontra a seguir, onde se verificou a estabilidade do delay e boa qualidade da transmissão.