Ich bin Neuling mit Gstreamer und ich versuche, damit verwendet werden. Mein erstes Ziel ist es, einen einfachen rtp-Stream von h264-Video zwischen zwei Geräten zu erstellen. Ich verwende diese beiden Pipelines:Stream H.264 Video über RTP mit Gstreamer
Sender: gst-launch-1.0 -v filesrc location=c:\\tmp\\sample_h264.mov ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000
Empfänger: gst-launch-1.0 -v udpsrc port=5000 ! rtpmp2tdepay ! decodebin ! autovideosink
Aber mit dem ersten (der Sender) bekam ich folgende Fehlermeldung:
Setting pipeline to PAUSED ...
Pipeline is PE*R*O L(LgIsNtG- l.a.u.n
h-1.0:5788): CRITICAL **: gst_adapter_map: assertion `size > 0' failed
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2812): gst_base_src_loop(): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
Ich habe versucht, viele andere Konfigurationen, aber ich konnte nicht die richtige Pipeline finden.
Einige andere Informationen: GStreamer-Version: 1.0.7 OS: Windows 7
Jede Idee/Vorschlag? Thx,
Danke für den Hinweis raw/Videodaten, aber ich denke, das löst nur einen Teil des Problems. Ich habe versucht, die klassische Pipeline mit Videotestsrc, aber nichts geht auf die andere Seite. Selbst mit der folgenden Pipeline kann ich auf der anderen Seite nichts empfangen: 'gst-launch-1.0 -v videotestsrc! udpsink host = 192.128.52.128 port = 9001' Ich habe das Gefühl, dass der udpsink nichts sendet! PS: ist kein Problem der Firewall, ich deaktiviere alle von ihnen – abir
Probieren mit: 'ffmpeg -i C: \ tmp \ sample_h264.mov -f mpegts udp: //192.168.52.128: 9001' ... und der Strom wird auf der anderen Seite empfangen. Aber ich möchte es mit gstreamer – abir
'videotestsrc tun! udpsink' ist * kein * RTP-Stream. du musst einen Payloader hinzufügen –