WebRTC Jitter Buffer Does Not Expand Enough
Reported by
benweeke...@gmail.com,
Mar 18 2016
|
|||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Example URL: Apprtc or other WebRTC service Steps to reproduce the problem: 1. Setup a WebRTC Call with 2 or more people. 2. Add jitter > 600ms to the client receiving audio 3. Speak in to the client sending audio. What is the expected behavior? All the audio should be heard. What went wrong? The audio will sound bad with much missing Did this work before? N/A Is it a problem with Flash or HTML5? HTML5 Does this work in other browsers? N/A Chrome version: 49.0.2623.87 Channel: stable OS Version: OS X 10.10.5 Flash Version: Shockwave Flash 21.0 r0 If it was possible to optionally specify a larger maximum jitter buffer width then the audio could be played. A solution was suggested by hlundin here https://bugs.chromium.org/p/chromium/issues/detail?id=587476#c13 There is a "latency" capability defined in http://w3c.github.io/mediacapture-main/getusermedia.html#media-track-capabilities. The following property is the one referenced: (double or DoubleRange) latency
,
Mar 18 2016
I leave it up to one of hlundin/tlegrand/hta to find an appropriate owner and timeframe for implementation.
,
Mar 21 2016
Did I understand previous discussion to say that we've actually implemented configurable max jitter buffer on the WebRTC library interface, so that we "just" need a double-valued constraint in the Blink API in order to enable it? Can someone confirm and say which API (call and struct) in WebRTC it needs to be on in order to be effective?
,
Mar 21 2016
Hi, The original post has more information but in short changing kAudioJitterBufferMaxPackets to 100 meant Chrome could handle twice the jitter it can do normally. Increasing this value any further didn't increase the handling of jitter any further. While allowing us to set kAudioJitterBufferMaxPackets to 100 would be a welcomed quick win, it would be better to look into it properly as the statistics related to the jitter buffer jump around wildly and it doesn't seem to grow and shrink nicely as expected. We can help test any changes you make and build chromium locally if needed.
,
Mar 29 2016
I spotted something in Chrome logging
AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, typing: true, agc_delta: 0, experimental_agc: false, extended_filter_aec: false, delay_agnostic_aec: false, experimental_ns: false, aec_dump: false, }
These look relevant:
audio_jitter_buffer_max_packets
audio_jitter_buffer_fast_accelerate
can they be set in the javascript somehow?
,
Mar 30 2016
No, they cannot be set from javascript today, but audio_jitter_buffer_max_packets is the C++ config that hta@ is asking for in #3.
,
Mar 30 2016
Is there a simple translation between audio_jitter_buffer_max_packets and the latency (seconds) that is described as a constraint in the spec?
,
Mar 30 2016
if kAudioJitterBufferMaxPackets is currently setting audio_jitter_buffer_max_packets then yes we found that increasing kAudioJitterBufferMaxPackets from 50 to 100 doubled the amount of latency volatility that the Jitter Buffer could handle. This would be a good start to improving this.
,
Mar 31 2016
A translation between audio_jitter_buffer_max_packets and the latency (seconds) requires knowing the frame size (ms) of the audio packets. This may not be known, and it is also conceivable that it changes over the course of a call.
,
Mar 31 2017
This issue has been available for more than 365 days, and should be re-evaluated. Please re-triage this issue. The Hotlist-Recharge-Cold label is applied for tracking purposes, and should not be removed after re-triaging the issue. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 31 2017
hlundin@ can you help with triage here?
,
May 6 2017
Regarding the tuning of the jitter buffer itself: this is a long-term project. I can't say much more than to stay tuned. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by meh...@chromium.org
, Mar 18 2016