Ideal pipe for streaming live with minimal delay

W.A. Garrett Weaver weaverg at
Tue Mar 13 12:59:03 PDT 2012

Thank you for replying.

I originally had the pipeline without sync=false, without it, the video was
very choppy, with it, I got a very consistent, high frame rate. I've found
leaving it in is important.

I tried playing around with the gstrtpjitterbuffer latency. So you're
saying that increasing the latency would give smoother play back? I tried
reducing it to try to reduce the receiving delay.

Example: ! gstrtpjitterbuffer latency=100 !

But reducing gstrtpjitterbuffer latency has no (noticeable) effect on
reducing delay.

You are right about latency being either from the network or the sender. In
my case it is from the sender. Changing the sender script dramatically
reduced latency. The thing that was changed was adjusting the speed-preset
option in the x264enc. My latest sender script is:

gst-launch-0.10 v4l2src ! 'video/x-raw-yuv,width=640,height=480' ! x264enc
bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=
port=5000 auto-multicast=true

Which has a latency of about 1 second (on a 2.8 Ghz core 2 duo). I can make
the encoder speed even faster, but that causes the video quality to be
reduced to unacceptable levels.

On Tue, Mar 13, 2012 at 2:52 AM, Wim Taymans <wim.taymans at> wrote:

> On 03/13/2012 06:19 AM, garrett wrote:
>> Hello, I came across this thread doing research about gstreamer video
>> streaming. Since this thread hasn't developed a definitive answer
>> concerning
>> OP's query, it'd like to give it a bump so that it could help others in
>> the
>> future.
>> I am trying to do a similar thing. I'm trying to transmit video, using RTP
>> packets but it's over UDP, not TCP. I am getting a constant latency of
>> about
>> 4 seconds. I'd like to be able to reduce that latency as much as possible.
>> Is there any way to possibly drop frames in a receiving pipeline so that
>> only the most recent video is displayed? What follows is my current
>> gstreamer receiving pipeline.
>> /gst-launch-0.10 udpsrc multicast-group= auto-multicast=true
>> port=5000 caps=application/x-rtp ! gstrtpjitterbuffer ! rtph264depay !
>> ffdec_h264 ! xvimagesink sync=false/
> You need to first remove sync=false, it will result in choppy playback.
> Depending
> on the H264 encoding and framerate, you might need to increase the
> gstrtpjitterbuffer
> latency property to get smooth playback.
> In that pipeline the latency between receiving the packet from the network
> and playing
> the decoded frame is determined by gstrtpjitterbuffer, which has a 200ms
> latency by default.
> There could also be a 1 frame delay in the H264 decoder. This pipeline
> will certainly not
> have a 4 second latency so your problem is either on the network or more
> likely on the sender.
> Wim
>  If anyone gives me any suggestions: I'd be happy to let you know how they
>> turn out.
>> --
>> View this message in context: http://gstreamer-devel.966125.**
>> delay-tp2314936p4468266.html<>
>> Sent from the GStreamer-devel mailing list archive at
>> ______________________________**_________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.**<gstreamer-devel at>
> ______________________________**_________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.**<gstreamer-devel at>

*W.A. Garrett Weaver *
weaverg at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list