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
Endlich ein Arbeitsbeispiel hier gefunden:
Dafür müssen Sie eine .SDP-Datei für VLC erstellen und IP-Adressen angeben.
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:
autoconf automake autopoint libtool
und die anderen fehlenden wesentlichen Build-Toolsgit clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
git checkout remotes/Origin/1.2
./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.)cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
rtsp://Host_IP:8554/test
Ich hatte am Ende des Prozesses ein Problem, etwa:
Ich habe die Lösung in diesem Beitrag gefunden:
Und es hat perfekt funktioniert !!!