Streaming de vídeo com Raspberry Pi 3 no Ustream.tv - Embarcados
Este artigo mostra como fazer streaming de vídeo com a Raspberry Pi 3 no site Ustream.tv, a partir de uma webcam comum.
A Raspberry Pi 3 é uma das Single-Board Computer mais populares existentes. Com ela é possível fazer muitos projetos, dos mais simples aos mais complexos. Considerando a versatilidade desta SBC, será feito um projeto de streaming de imagens de uma webcam comum ao site Ustream.tv, de modo que o streaming possa ser visto de qualquer lugar do planeta. Este projeto pode ter múltiplas aplicações, desde segurança residencial, monitoramento de animais de estimação e até mesmo monitoramento de processos industriais.
Como ponto importante deste projeto, destaca-se o uso de uma webcam comum (custo aproximado: R$35,00), o que apresenta um custo muito inferior em relação à camera oficial da Raspberry Pi (aproximadamente R$180,00).
Raspberry Pi 3 (de preferência, sem ser headless);
Webcam USB comum;
Conectividade com a Internet.
Canal no Ustream.tv
O Ustream.tv é uma plataforma de streming muito popular. Dentre os motivos da sua popularidade, destacam-se a possibilidade de utilizá-la de forma totalmente grátis e a facilidade de uso. Para o projeto deste artigo, será necessário criar uma conta e um canal no Ustream.tv, além de obter uma URL para streaming e chave de autenticação para a mesma. Para isso, siga os passos:
Acesse o site www.ustream.tv;
Criar uma conta no site.
Quando for solicitado para escolher o plano / pricing, selecione o free (grátis);
No final do processo de cadastro da conta, será solicitado para ser criado um canal. Dê o nome que desejar ao mesmo, e selecione a opção para torná-lo público;
Uma vez logado na sua conta, vá em "Channel Settings". Lá, clique no nome do seu canal;
Na tela de configurações do canal, clicar na opção "Broadcast settings". Na tela que abrir, clique na opção "View" localizada ao lado de "Encoder settings";
Na página que abrir, será exibida a URL RMTP e a chave de acesso / chave de streaming. Guarde estas informações, estas serão fundamentais no decorrer do projeto.
Instalações e procedimentos – passo-a-passo
Para ser realizado o streaming da forma desejada (diretamente para um canal do site Ustream.tv), é necessária a instalação de alguns programas e codecs. Para isso, siga os passos:
Plugue a webcam em qualquer entrada USB da Raspberry Pi 3;
Abrir o terminal / console;
Executar os seguintes comandos:
La listagem exibida, verifique se a webcam aparece na listagem (irá aparecer como video0).
Atualização do repositório e instalação do fswebcam:
Para isto, utilize os seguintes comandos:
sudo apt-get update sudo apt-get upgrade sudo apt-get install fswebcam
Feito isso, é hora de testar se a webcam está funcionando. Para isto, vá a alguma pasta que você tenha pleno acesso e digite o seguinte comando:
fswebcam FotoTeste.jpg
Após a execução do comando, será salvo no arquivo FotoTeste.jpg uma "foto" tirada pela webcam. Verifique se a imagem está ok / bem visível (se não estiver, há alguma incompatibilidade de sua câmera especificamente com o Raspbian, já se estiver ok, pode-se prosseguir neste passo-a-passo).
5. Instalação do codec H264
Este codec é um dos principais exigidos no streaming de imagens. Portanto, é importante tê-lo instalado. Para instalá-lo, utilize os seguintes comandos:
cd /usr/src git clone git://git.videolan.org/x264 cd x264 sudo ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl sudo make -j4 sudo make install
O processo todo demora bastante (na ordem de algumas dezenas de minutos, dependendo da velocidade de sua conexão à Internet).
6. Instalação do FFMPEG
O FFMPEG é uma ferramenta que permite fazer captura de vídeo a partir de uma webcam, seja uma captura local (salvar vídeo em um arquivo na Raspberry Pi) ou para streaming (o uso que faremos neste artigo). Esta ferramenta precisa ser baixada, compilada e instalada. Para isto, utilize os seguintes comandos:
git clone https://github.com/FFmpeg/FFmpeg cd FFmpeg sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree sudo make -j4 sudo make install
Trata-se de um processo que demora horas (no meu caso, durou cerca de tres horas e meia) e exige muito processamento da Raspberry Pi. Portanto, recomendo fortemente fazer este procedimento com a Raspberry fora do case (ou utilizar um case com cooler). A título de curiosidade, monitorei on-line a temperatura da Raspberry Pi (utilizando este projeto aqui) e constatei picos de temperatura de 74 graus Celsius nos núcleos ARM (algo bem relevante para a temperatura dos cores de um SoC).
7. Instalação do AVCONV
O AVCONV trata-se de uma ferramenta que, utilizada em conjunto com o FFMPEG, permite fazer o streaming de imagens da webcam com uma série de parametrizações (resolução, framerate, encoding, etc.). Para sua instalação, utilize o seguinte comando:
8. Hora de fazer o Broadcast!
Chegou a hora mais esperada: fazer o streaming! Para isto, utilize o seguinte comando:
avconv -f video4linux2 -r 10 -i /dev/video0 -pix_fmt yuv420p -r 10 -f flv <RMTP_URL>/<CHAVE_STREAMING>
<RMTP_URL>: URL RMTP do seu canal, obtida anteriormente no procedimento deste artigo;
<CHAVE_STREAMING>: chave streaming do seu canal, obtida anteriormente no procedimento deste artigo.
Feito isso, o streaming irá ser iniciado. Basta agora entrar no seu canal do Ustream.tv a partir de qualquier dispositivo (computador, tablet ou smartphone) e assistir ao streaming ao vivo!
Para interromper o streaming, pressionar Ctrl + C.
http://blog.grunick.com/live-streaming-video-with-raspberry-pi/
http://www.recantha.co.uk/blog/?p=4106
Fonte da imagem de capa: https://pimylifeup.com/wp-content/uploads/2015/02/raspberry-pi-webcam-server.jpg
AnteriorAnteriorConheça os 18 selecionados do Concurso Conectando à Internet das coisas com NXP
PróximoSensores de corrente Vishay DalePróximo
bom estava pensando se seria fazer isso com áudio somente áudio .tipo da entrada analógica pra saída pra um servidor tipo esse que usou só que um de áudio com chave de aceeso e tudo. bastando somente a placa processar o audio que ela recebe em acc plus (ACC+) e mandando pra um servidor soutcast ou icecast e ambos . SERIA isso possível?
Parabéns pela excelente exposição.sou do ramo de radiodifusão mas o UStream,Tv mudoi muitas coisas: só agora vi seu trabalho portanto logo lo farei pesquisa a respeito pois preciso disso. Mais uma vez receba os meus parabéns!
Pedro, teve latência?
Saberia me dizer se é possivel também nas placas B e B+ além da Raspberry 3?
24/08/2016 23:21
Parabéns pelo artigo Pedrão!
Reply to Moises Santana Pereira
Moises, muito obrigado!
Pedro, qual e' a camera utilizada nesse post?
Parabens pelo post, parece muito pratico.
24/08/2016 00:19
Primeiramente, obrigado pela leitura e pelo elogio. A câmera utilizada foi, literalmente, uma "câmera genérica". Nem marca ela tem (paguei 30 reais nela). Ou seja, isso mostra que câmeras simples e baratas podem ser muito úteis em projetos de visão computacional e afins na Raspberry Pi.