UV4L MMAL
Agradecemos o comentário de @mpromonet pela atualização do driver Linux-Projects V4L2 que agora implementa o MMAL com muita eficiência - mas ainda é um trabalho em andamento.
Siga estas instruções para instalar o repositório linux-project e instale o driver UV4L com extras. Em seguida, instale o servidor e o mjpeg. Se você quiser, também pode experimentar os outros.
Depois de instalar tudo, você pode acessar o servidor HTTP na porta 8080. Você também deve verificar o /etc/uv4l/conf
arquivo e definir se deseja mjpeg ou H.264, pois isso faz a diferença, mas é possível ajustar algumas configurações através da Web embutida. servidor.
HTML 5
Era isso que estávamos esperando (chamado WebRTC ) e, graças ao novo driver, ele funciona muito bem (em um Raspberry Pi 2).
Primeiro, siga estas etapas, http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14 :
curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -
# Add the following line to the file /etc/apt/sources.list
# deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
sudo apt-get update
sudo apt-get install uv4l uv4l-raspicam
sudo apt-get install uv4l-raspicam-extras
Em seguida, no seu Raspberry Pi 2 instale este WebRTC (para um Raspberry Pi 1, leia o site vinculado para outras opções)
sudo apt-get install uv4l-webrtc
Reinicie todos os drivers e vá para
http://raspberry:8080/
Agora você tem streaming de vídeo de baixa latência e alta qualidade direto para um navegador moderno como o Chrome ou o Firefox. (Talvez o Safari, mas não posso verificar porque eles não fazem mais o Winblows e o Internet Explorer ... eh)
MJPEG
Por padrão, ele usa mjpeg
1080p, e é muito lento. Ajustei o tamanho do quadro em 800x600 e usei algo como o iSpy para processar o vídeo. Por segurança, recebo cerca de 10 qps em um vídeo nítido. É muito melhor do que os 3 qps em 640x480 antes deste driver. Funciona no iPhone com Safari, Android Chrome e quase todo o resto.
http://raspberrypi:8080/stream/video.mjpeg
Isso também significa que motion
deve (ainda preciso testar e comparar) funcionar muito melhor agora. Certifique-se de definir a configuração para usar v4l2_palette 8
ouv4l2_palette 2
H.264
Agora isso foi corrigido para "streaming", e não precisamos nos esforçar ao máximo para assistir a vídeos H.264 através do VLC media player . O fluxo é ainda no formato RAW H.264, portanto, é necessário desmembrá-lo ou transcodificar / encapsualte se você precisar que ele funcione em outro lugar. Você deve ajustá-lo bitrate=xxxxxx
no arquivo de configuração se estiver transmitindo por Wi-Fi.
No VLC media player, você deve informar que deseja usar o desmuxador H.264. Portanto, se você estiver usando a GUI, adicione o argumento :demux=264
. Na linha de comando vlc http.../video.h264 --demux h264
,. Caso contrário, você verá uma tela em branco, mesmo que o LED da câmera esteja aceso.
http://raspberrypi:8080/stream/video.h264
Voila! Streaming HD com aproximadamente 500 ms de atraso (com ajustes, até 200 ms). Definitivamente, é muito mais fácil do que usar os métodos antigos. A qualidade e o FPS são excelentes, mas você não pode incorporar isso no HTML5 sem transcodificar para MP4 ou WebM . Espero que isso seja implementado, pois realmente fará deste um ótimo servidor independente.
RTSP / RTMP / RTP
Não suportado / implementado
http://www.linux-projects.org/uv4l/tutorials/rtsp-server/
HLS
Não suportado / implementado
Ainda não há video4linux
driver disponível. Isso significa que não podemos usar o ffserver para transmitir dados usando /dev/video0
ou comparados como uma webcam USB.
É por isso que é tão difícil encontrar a transmissão ao vivo adequada para navegadores HTML5.