Ist es möglich, H.264 mit RTSP auf Raspberry Pi zu streamen?


9

Ich versuche, ein Videokonferenzsystem mithilfe von zwei Raspberry Pi-Karten einzurichten.

Wie kann ich das H.264- Protokoll über ein Echtzeit-Streaming-Protokoll über eine Ethernet-Verbindung streamen?

Welches Betriebssystem sollte ich verwenden, um auf dem Raspberry Pi-Board zu entwickeln?


Nginx mit RTMP-Modul ist wirklich anständig, aber auch CRTMPServer ist sehr anständig und stabil. Ich habe es geschafft, mit beiden Lösungen Verzögerungen von weniger als 1 Sekunde zu erzielen. Demonstriert in meinem Buch oder teilweise auf meinem Blog
Piotr Kula

Überprüfen Sie UV4L unter linux-projects.org . Es unterstützt auch Hardware-codiertes H264-Video, Echtzeit, volle Bilder pro Sekunde und minimale CPU-Auslastung.
Prinzessin

Antworten:


4

BEARBEITEN: Dies ist nicht mit RTSP, kann Ihnen aber helfen

Sie können versuchen , Video und Audio von einem Raspberry Pi ohne Latenz zu streamen .

Installieren Sie gstreamer1.0 auf dem Raspberry Pi-Videoserver:

  1. Fügen Sie in /etc/apt/sources.list "deb http://vontaene.de/raspbian-updates/ . Main" hinzu.
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

Starten Sie das Streaming des Videos

  1. Im Raspberry Pi mit Befehl:

    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
    

Starten Sie den Videoempfang

  1. Geben Sie auf Ihrem PC den folgenden Befehl ein:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    

Sie müssen auch Software auf Ihrem Client installieren, damit dies funktioniert. Unter OS X:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW

1
Dies verwendet kein RTSP.
Alistair Buxton

Was technisch diese Verwendung?
Łukasz Zaroda


1

Es gibt eine benutzerdefinierte Quelle namens nginx-rtmp - Dies funktioniert sehr gut, aber Sie müssen eine Menge Dinge tun, bevor es funktioniert. Es ist fantastisch, weil es viele integrierte Funktionen hat und andere Streaming-Protokolle wie HLS oder das Einbetten von MPEG-DASH in Websites unterstützt, nicht nur in RTMP. Es ist äußerst effizient beim Umpacken des Videostreams in flv oder mp4.

Hier ist ein Blog-Beitrag darüber, wie man es zum Laufen bringt .

Die einzige ernsthafte Voraussetzung ist, dass ffmpeg auf Rasbpian (verwenden Sie nicht das Repo, das langsam ist) von der neuesten Gabel kompiliert werden muss. Ich denke auf Arch hat es das richtige ffmpeg. Dies dauert auf dem Pi 5 Stunden. Versuchen Sie, eine kompilierte Version zu finden, oder verwenden Sie qemo, um die Kompilierung zu überqueren.

Aber kurz gesagt, mit Nginx 1.4.1 (Sie können es bei Bedarf auch mit neueren Versionen versuchen).

 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  

Sie müssen Abhängigkeiten (siehe Link zum Blog) für Building und Nginx erhalten. Anschließend konfigurieren Sie den Build in der Nginx-Quelle, die mit dem RTMP-Modul verknüpft ist. Der Build auf dem Pi dauert 10 Minuten.

 ./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 \  

Die neueste Version von Raspbian enthält den UV4L-Treiber, der das PSIPS behebt (die Zeitrahmeneinbettung für h264, die in den ursprünglichen raspivid-Treibern unterbrochen war). Damit sollten jetzt einige Streaming-Probleme behoben sein.


-1

Hier ist ein Rezept für den Einstieg: Senden und Empfangen von PI Camera-Videos über das Netzwerk


1
Die ersten beiden Zeilen in diesem Artikel beschreiben das Streamen von Videos in Befehlszeilen. Dies ist in Ordnung, aber nicht sehr robust und erklärt nicht viel darüber, was mit allen Pipes los ist. Der Rest des Artikels bezieht sich jedoch nicht wirklich auf die Frage des OP. Kurze, linkbasierte Antworten werden ebenfalls verpönt. Erwägen Sie, Ihre Antwort leicht zu verbessern. Downvotes können in Upvotes umgewandelt werden, nachdem Sie Ihre Antwort bearbeitet haben.
Piotr Kula
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.