it-swarm.com.de

Mit Gstreamer für die Bereitstellung des RTSP-Streams wurde ein Arbeitsbeispiel gesucht

Wir versuchen, Gstreamer an einem DM368 Leopardboard * zum Laufen zu bringen. Wir haben es erfolgreich überredet, ein Testvideo (videotestsrc) zu erstellen, zu kodieren und in eine Datei zu kopieren.

Das Rohr, das funktioniert hat, ist:

gst-launch -v videotestsrc num-buffers=100 ! queue ! ffenc_mpeg4 bitrate=800000 ! ffmux_mp4 ! filesink location=video_test.mp4

Der nächste Schritt besteht darin, die Pipe so zu ändern, dass die Testkarte über das Netzwerk gestreamt wird. Sie kann auf einem PC mit VLC angezeigt werden, indem Sie Folgendes verwenden: rtsp: // ip_addr: port/streamname , aber die Dokumentation dazu erscheint recht gut dünn am Boden (und oftmals veraltet), und die Beispiele scheinen Quellcode und Befehlszeilen zu verwischen.

Ich gebe gerne zu, dass> 50% des Problems unser Mangel an Vertrautheit mit Gstreamer und seinen verschiedenen Teilen ist. Ich habe immer herausgefunden, dass ich, wenn ich ein funktionierendes Beispiel habe, mit Stöcken anfangen und den Rest ausarbeiten kann von dort.

Ich bin so weit gekommen:

gst-launch -v videotestsrc ! queue ! ffenc_mpeg4 bitrate=800000 ! rtpmp4vpay ! tcpserversink Host=<PC_ip> port=5000

Was scheint, dass etwas in VLC passiert (mit tcp: // board_ip: port ) - es scheint zu glauben, dass etwas passiert (wirft keinen Fehler), aber es spielt/zeigt nicht etwas. Wenn ich den gst-Prozess unterbreche (^ C), bemerkt VLC.

Im Grunde - jede Anleitung/Feedback wäre großartig, ein funktionierender One-Liner wäre fantastisch.

Zum Hinzufügen hinzugefügt: Ja, ich sehe das Beispiel test_video.c, aber es wird ein spezielles Programm kompiliert, um etwas zu tun, das aussieht, als müsste es möglich sein, es einfach von der Befehlszeile aus aufzurufen, um das Konzept zu beweisen.

* = Linux version 2.6.32-17-ridgerun /CPU: ARM926EJ-S
13
John U

Endlich ein Arbeitsbeispiel hier gefunden:

GStreamer RTP-Stream in vlc

Dafür müssen Sie eine .SDP-Datei für VLC erstellen und IP-Adressen angeben.

1
John U

Source : Im Gegensatz zu RTP handelt ein RTSP-Server bei Bedarf die Verbindung zwischen einem RTP-Server und einem Client aus ( Link ). Der gst-rtsp-server ist kein gstreamer-Plugin, sondern eine Bibliothek, mit der Sie Ihre eigene RTSP-Anwendung implementieren können. Der folgende Testfall wurde auf einem Ubuntu 12.04.5-Computer angewendet:

  • Vorentscheidungen
    • Installieren Sie gstreamer-1.0 mit Base/good/hässlich/bad plugins
    • Installieren Sie autoconf automake autopoint libtool und die anderen fehlenden wesentlichen Build-Tools
  • Erstellen Sie den gst-rtsp-server
    • git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
    • Wir verwenden gstreamer 1.2: git checkout remotes/Origin/1.2
    • Build: ./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure && make (Aus irgendeinem Grund wird GST_PLUGINS_GOOD_DIR nicht von pkg-config gesetzt, also setzen wir es explizit.)
  • Testlauf
    • Testanwendung ausführen: cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
    • Man kann nun über die Adresse fern auf den Stream zugreifen (z. B. mit VLC): rtsp://Host_IP:8554/test
15
Tik0

Ich hatte am Ende des Prozesses ein Problem, etwa:

  • configure: Kein Paket 'gstreamer-1.0' gefunden
  • configure: Fehler: kein gstreamer-1.0> = 1.2.3 (GStreamer) gefunden

Ich habe die Lösung in diesem Beitrag gefunden:

https://askubuntu.com/questions/384059/error-compiling-a-package-configure-error-no-gstreamer-1-0-1-0-0

Und es hat perfekt funktioniert !!!

0
fgfernandez0321