É possível transmitir H.264 com RTSP no Raspberry Pi?

9

Estou tentando configurar um sistema de videoconferência usando duas placas Raspberry Pi.

Como posso transmitir o protocolo H.264 através de um protocolo de streaming em tempo real através de uma conexão Ethernet?

Qual SO devo usar para desenvolver na placa Raspberry Pi?

sujal
fonte
O nginx com rtmp-module é realmente decente, mas também o CRTMPServer é muito decente e estável. Consegui obter atrasos inferiores a 1 segundo com ambas as soluções. Demonstrado em meu livro ou parcialmente no meu blog
Piotr Kula
Verifique o UV4L em linux-projects.org . Ele também suporta vídeo codificado em hardware H264, tempo real, full fps, uso mínimo da CPU.
precisa saber é

Respostas:

4

EDIT: Isso não é com RTSP, mas pode ajudá-lo

Você pode tentar com Como transmitir vídeo e áudio de um Raspberry Pi sem latência .

Instale o gstreamer1.0 no servidor de vídeo Raspberry Pi:

  1. Em /etc/apt/sources.list, adicione "deb http://vontaene.de/raspbian-updates/ . Main"
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

Comece a transmitir o vídeo

  1. No Raspberry Pi com o comando:

    raspivid -t 0 -w 1080 -h 720 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=VIDSERVERIP port=5000
    

Comece a receber vídeo

  1. No seu PC, digite o comando:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    
inye
fonte
Você também precisará instalar o software no seu cliente para que isso funcione. No OS X:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW
11
Isso não usa RTSP.
Alistair Buxton
O que tecnicamente esse uso?
Łukasz Zaroda
2

Postei uma possível solução no fórum raspberry usando um servidor RTSP simples baseado no live555 que é alimentado com o driver H264 V4L2 que você pode encontrar no github h264_v4l2_rtspserver

mpromonet
fonte
1

Existe uma fonte personalizada chamada nginx-rtmp - isso funciona muito bem, mas você precisa fazer muitas coisas antes de funcionar. É incrível porque possui muitos recursos integrados e suporta outros protocolos de streaming, como HLS ou incorporação de MPEG-DASH em sites, não apenas RTMP. É extremamente eficiente para reembalar o fluxo de vídeo em flv ou mp4.

Aqui está uma postagem de blog sobre como fazê-lo funcionar .

O único pré-requisito sério é que o ffmpeg precisa ser compilado no Rasbpian (não use o repositório, pois é lento) a partir do fork mais recente. Eu acho que no Arch ele tem o ffmpeg correto. Isso leva 5 horas no Pi. Tente encontrar uma versão compilada ou use o qemo para fazer a compilação cruzada.

Mas, em poucas palavras, usando o nginx 1.4.1 (você pode tentar mais novo, se precisar)

 cd /usr/scr  
 #clone the latest version of rtmp module for nginx  
 git clone git://github.com/arut/nginx-rtmp-module.git  
 #download nginx source tested with- 1.4.1  but 1.5.0 is also supported
 wget http://nginx.org/download/nginx-1.4.1.tar.gz  
 tar xzf nginx-1.4.1.tar.gz  
 cd nginx-1.4.1  

Você precisa obter dependências (verifique o link do blog) para compilar e nginx. Em seguida, você configura a compilação dentro da fonte nginx vinculando ao módulo rtmp. A compilação leva 10 minutos no Pi.

 ./configure --prefix=/var/www \  
             --sbin-path=/usr/sbin/nginx \  
             --conf-path=/etc/nginx/nginx.conf \  
             --pid-path=/var/run/nginx.pid \  
             --error-log-path=/var/log/nginx/error.log \  
             --http-log-path=/var/log/nginx/access.log \  
             --with-http_ssl_module \  
             --without-http_proxy_module \  
             --add-module=/usr/src/nginx-rtmp-module \  

A versão mais recente do Raspbian inclui o driver UV4L que corrige o PSIPS (o período de incorporação do h264 que foi quebrado nos drivers raspividados originais). Portanto, isso deve corrigir muitos problemas de streaming agora.

Piotr Kula
fonte
-1

Aqui está uma receita para você começar: Enviando e recebendo vídeo da PI Camera pela rede

Hendry
fonte
11
As duas primeiras linhas desse artigo são como transmitir vídeo em linhas de comando, o que é bom, mas não muito robusto e não explica muito o que está acontecendo com todos os canais! Mas o restante do artigo não está realmente relacionado à questão do OP. Respostas curtas e baseadas em links também são desaprovadas. Considere melhorar ligeiramente sua resposta. Os votos negativos podem ser convertidos em votos positivos depois que você editou sua resposta.
Piotr Kula