it-swarm.com.de

GStreamer rtp stream to vlc

Ich habe einige Probleme herauszufinden, wie man einen einfachen RTP-Stream mit Gstreamer erstellt und auf VLC anzeigt.

Ich habe GStreamer 0.10.30 und VLC 1.1.3 installiert. Meine einzige Voraussetzung ist die Verwendung von MPEG4- oder H.264-Codecs.

Im Moment kann ich den GStreamer videotestsrc über diese einfache Pipeline streamen:

gst-launch videotestsrc ! ffenc_mpeg4 ! rtpmp4vpay ! udpsink Host=127.0.0.1 port=5000

welches die "Kappen" ausgibt, die der Client benötigt, um den Stream zu empfangen:

/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)365697461, clock-base=(uint)390754204, seqnum-base=(uint)10399

Ich kann den Stream auch mithilfe der folgenden Pipeline anzeigen:

gst-launch udpsrc uri=udp://127.0.0.1:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d88007d0a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)298758266, clock-base=(uint)3097828288, seqnum-base=(uint)63478" ! rtpmp4vdepay ! ffdec_mpeg4 ! autovideosink

aber wenn ich versuche den stream mit vlc zu empfangen:

vlc -vvv rtp://127.0.0.1:5000

Ich bekomme nichts.

26
Nicola Desogus

Ich habe das Problem gelöst, es braucht nur eine SDP-Datei wie diese:

v=0
m=video 5000 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 MP4V-ES/90000

und die Option "send-config = true" für das Element rtpmp4vpay:

gst-launch videotestsrc ! ffenc_mpeg4 ! rtpmp4vpay send-config=true ! udpsink Host=127.0.0.1 port=5000

und dann kann damit gespielt werden

vlc <filename>.sdp
38
Nicola Desogus

Anleitung für H264 und neuen Gstreamer (Windows)

gst-launch-1.0 videotestsrc ! openh264enc ! rtph264pay config-interval=10 pt=96 ! udpsink Host=127.0.0.1 port=5000

sDP-Datei:

v=0
m=video 5000 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 H264/90000

für andere Codecs siehe https://en.wikipedia.org/wiki/RTP_audio_video_profile und entsprechendes SDP-Beispiel in RFC-Link

15
Alex Bezuglyi