0

I am learning Gstreamer, and to start I am using the gst-launch tool to stream a video file over the network using the udpsink and udpsrc elements.

After going through the Gstreamer documentation and reading other stackoverflow comments, I got a command to read the mp4 file and send it to a udpsink whith no visible errors, and another command using udpsrc to consume the streamed data and send it to a xvimagesink to visualize it, but the windows that is supposed to open as a result of the xvimagesink does not opened.

Could someone help me to solve this problem please ?

I copy here the two gst-launch commands I am using, and the logs for the producer and consumer.

gst-launch-1.0 -v filesrc location = ./x264_sample_file.mp4 ! qtdemux ! video/x-h264 ! rtph264pay ! udpsink host=127.0.0.1 port=9001


gst-launch-1.0 -v udpsrc uri=udp://127.0.0.1:9001 ! application/x-rtp,payload=96 ! rtph264depay  ! decodebin ! xvimagesink

Producer logs.

gst-launch-1.0 -v filesrc location = ./Videos/Dark\ Phoenix\ \(2019\)\ \[BluRay\]\ \[1080p\]\ \[YTS.LT\]/Dark.Phoenix.2019.1080p.BluRay.x264-\[YTS.LT\].mp4 ! qtdemux ! video/x-h264 ! rtph264pay ! udpsink host=127.0.0.1 port=9001
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1: caps = video/x-h264
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, codec_data=(buffer)01640029ffe1001867640029acd94078065b011000003e90000bb800f183196001000668e9384cf23c, width=(int)1920, height=(int)800, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640029, sprop-parameter-sets=(string)"Z2QAKazZQHgGWwEQAAA+kAALuADxgxlg\,aOk4TPI8", payload=(int)96, ssrc=(uint)606785685, timestamp-offset=(uint)3182951615, seqnum-offset=(uint)8918, a-framerate=(string)23.976023976023978
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640029, sprop-parameter-sets=(string)"Z2QAKazZQHgGWwEQAAA+kAALuADxgxlg\,aOk4TPI8", payload=(int)96, ssrc=(uint)606785685, timestamp-offset=(uint)3182951615, seqnum-offset=(uint)8918, a-framerate=(string)23.976023976023978
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, codec_data=(buffer)01640029ffe1001867640029acd94078065b011000003e90000bb800f183196001000668e9384cf23c, width=(int)1920, height=(int)800, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, codec_data=(buffer)01640029ffe1001867640029acd94078065b011000003e90000bb800f183196001000668e9384cf23c, width=(int)1920, height=(int)800, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 3182951615
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 8918
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

Consumer logs.

gst-launch-1.0 -v udpsrc uri=udp://127.0.0.1:9001 ! application/x-rtp,payload=96 ! rtph264depay  ! decodebin ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = application/x-rtp, payload=(int)96, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, payload=(int)96, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
Esteban Collado
  • 1,840
  • 1
  • 14
  • 15
  • Did you try with autovideosink iso xvimagesink? – vermaete Jan 19 '20 at 12:18
  • Probably related to issues like this: https://stackoverflow.com/questions/59676542/udp-receiver-needs-to-start-before-udp-sender/59683313 . Note that `rtph264pay` also has a similar property. – Florian Zwoch Jan 19 '20 at 12:37
  • I could not replicate your setup since I don't have the video but I replaced the file with `videotestsrc` and the following pipes work on my setup `gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264 ! rtph264pay ! udpsink host=127.0.0.1 port=9001`, `gst-launch-1.0 -v udpsrc uri=udp://127.0.0.1:9001 ! application/x-rtp,payload=96 ! rtph264depay ! decodebin ! autovideosink` – Alper Kucukkomurler Jan 21 '20 at 06:43

0 Answers0