Low latency streaming over the network, time sync

Wolfgang Grandegger wg at grandegger.com
Thu Oct 4 09:09:47 UTC 2018


Hello,

I'm looking into low latency real-time streaming of MJPEG videos over
the network with GStreamer. I wonder what module does the frame
synchronisation on the receivers side and how. On the sender I start:

# gst-launch-1.0 filesrc location=output.avi ! avidemux name=demux
demux.video_0 ! vaapipostproc ! vaapijpegenc quality=50 ! rtpjpegpay !
udpsink host=192.168.178.52 port=50004

and on the receiver:

# gst-launch-1.0 udpsrc port=50004 !
application/x-rtp,encoding-name=JPEG,payload=26 ! queue ! rtpjpegdepay !
vaapijpegdec ! vaapipostproc ! vaapisink

I have some basic questions:

- Are the frames displayed as they arrive (in "udpsrc")?

- Are the timestamps of the RTP packets used to  display the
  frames at the right time?

If I add "sync=false" to the sender's command, the video is displayed
faster, even if I replace "queue" with "rtpjitterbuffer" in the
receiver's command.

Also, with high quality decoding (90%), the video starts jerking. If I
play the AVI file directly on the receiver side, it looks good.

What am I missing?

TIA,

Wolfgang.




More information about the gstreamer-devel mailing list