video jitter buffer

3,526 views
Skip to first unread message

shty...@gmail.com

unread,
Oct 13, 2015, 2:03:22 PM10/13/15
to discuss-webrtc
On this page: http://www.webrtc.org/reference/webrtc-components It talks about the video jitter buffer (at the bottom).

Dynamic Jitter Buffer for video. Helps conceal the effects of jitter and packet loss on overall video quality.

Is this buffer something on the receiver or the sender side? Is it possible to tweak the video buffer to reduce playback latency (at the expense of jitter)? Are there other places where a developer can hint to lower the buffer sizes (like in the SDP offer maybe?)

Stefan Holmer

unread,
Oct 18, 2015, 4:02:44 AM10/18/15
to discuss-webrtc
The video jitter buffer is on the receiver side, and the buffer size is determined by this class, which increases the size of the buffer if there's a lot of jitter or if there is a difference in transfer time between large and small frames. In addition to this, there may be additional latency to account for retransmissions if the link is experiencing packet loss.

The jitter buffer is, at least currently, not configurable from JS or SDP.

/Stefan

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/9ed35c7b-fd5d-46f9-9ca7-2a811c2b65e9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

andj222

unread,
Mar 31, 2016, 2:36:42 AM3/31/16
to discuss-webrtc
Can we please more control over jitter buffer minimums / maximums with the JS api?  Currently, if you have an application that needs either very very low latency response at the cost of smoothness (e.g. interactive / gaming type applications) or an application that needs very very smooth results at the cost of latency, it seems that you're just SOL because the jitter buffer estimation logic is totally hardcoded within chromium.

Sergio Garcia Murillo

unread,
Mar 31, 2016, 4:00:14 AM3/31/16
to discuss...@googlegroups.com
One thing, double check first that your latency is at jitter buffer due to packet loss and not to due too lip syncing.

A dirty trick is to not send rtcp for audio to disable lip sync. I have used it server-side in a couple of occasions and it worked for me to decrease video latency.

Best regards
Sergio

andj222

unread,
Mar 31, 2016, 6:02:21 AM3/31/16
to discuss-webrtc
Thanks!

I should clarify some things:
I'm not even using audio, I'm using only video.

All my jitter tests are conducted locally (both peers on the same machine), so packet loss doesn't even enter into the equation.

I've placed debug print statements into the jitter buffer code, and it would appear that the jitter buffer increases I observe are simply due to sudden frame size variations (e.g. The difference between max_frame_size and avg_frame_size suddenly becomes larger), which are going to be a natural part of many videos. After a frame size increase such as this, the jitter buff can increase from ~30ms to ~100ms or more, and that kind of latency is very undesirable for certain kinds of apps.

Hardcoding the jitter buffer to 30 in jitter_estimation.cc removes this extra latency and strikes a decent smoothness/latency balance for our particular circumstance.

Anyway, long story short, I'd really like some control over the jitter buffer size from the JS side :)

soft.deve...@gmail.com

unread,
Jun 2, 2017, 10:57:09 AM6/2/17
to discuss-webrtc
Hi!
Are there any news on the posibility of configuring max jitter buffer to be able to decode "corrupt" video frames but having smooth framerates? It is so important as Andj222 said for interactiveservices like gaming or Virtual Set Top Boxes or streamed UI.

Is there any chance this would be enabled at WebRTC on pair with Reference Frame Invalidation callbacks to the video encoder (at least for H264) ?

Thanks! :)

Chris M

unread,
Jan 29, 2018, 3:00:26 AM1/29/18
to discuss-webrtc
Hi andj222, I'm also trying to reduce video latency as much as possible and am open to compiling Chromium.  Would you be willing to share your code change to jitter_estimation.cc?

Thanks,
 Chris

Henri Machalani

unread,
Mar 13, 2018, 5:59:17 AM3/13/18
to discuss-webrtc
It looks like x-google-buffer-latency used to exist and might have been helpful for this?

weakac...@gmail.com

unread,
Mar 26, 2018, 6:07:48 AM3/26/18
to discuss-webrtc
Is there and relationship between jitter buffer size and jitter delay? How can we find the relationship in the source code? I have read jitter_buffer.cc and jitter_estimation.cc but i didn't find how the delay determine the buffer size.

在 2015年10月14日星期三 UTC+8上午2:03:22,shty...@gmail.com写道:
Reply all
Reply to author
Forward
0 new messages