WebRTC music playout is not in in strict
Reported by
christia...@googlemail.com,
Sep 21 2016
|
||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.92 Safari/537.36 Example URL: any WebRTC audio transmission Steps to reproduce the problem: 1. Open a WebRTC audio connection with Opus at good bitrate and transmit music 2. Use a none perfect Internet connection 3. Listen to the music What is the expected behavior? Music shall be play in strict time (tempo giusto) What went wrong? You hear "wow and flutter", because the playout stretching and shrinking algorithm Did this work before? No Is it a problem with Flash or HTML5? HTML5 Does this work in other browsers? Yes Chrome version: 53.0.2785.92 Channel: stable OS Version: Ubuntu 14.04 Flash Version: Shockwave Flash 22.0 r0 Actually, a switch call be added to the WebRTC optional to trade off delay vs. constant playout speed. Here with normal telephone usage, playout stretching and shrinking is ok, during professional audio transmission this shall not happen.
,
Sep 29 2016
hta: is there a way or being planned to have a way to disable the jitter buffer from the Web APIs?
,
Sep 29 2016
(adding hta)
,
Sep 29 2016
Actually, it should be straight forward to tune the GIPS engine accordingly. if the music-mode is switched on: a) playout stretching and shrinking shall not be used b) the playout buffer shall be a bit larger to ensure a constant playout. Already now, you have a couple of options in WebRTC which control the audio engine...
,
Oct 11 2016
hlundin@ et al: Is this possible today or would it require WebRTC library changes?
,
Oct 11 2016
I think the "echoCancellation = false" constraint will actually do the Right Thing on the sender side. This is an obscure way of doing it, and should probably be changed. On the receiver side, I don't think we have a Javascript API surface for this.
,
Oct 13 2016
We cannot do this today. The problem is, as correctly identified in the original post, that delay adaptation in the jitter buffer kills the music timing. We could avoid some of that adaptation by aiming for a higher buffer level, but that is only half of the problem. The jitter buffer also takes care of clock drift between sender and receiver, and that is also handled by time-stretching. Hence, no silver bullet.
,
Oct 13 2016
This seems more like a feature request - to tlegrand@ to have a look and prioritize.
,
Oct 13 2016
Clock drift should not be a problem. Assuming 50ppm tolerance, clock drift adds 3ms per minute. if you have an pause every 10 minutes, then you can still adjust to keep m2e-delay low.
,
Oct 14 2016
This is essentially a duplicate of feature request https://bugs.chromium.org/p/webrtc/issues/detail?id=677.
,
Oct 14 2016
,
Feb 9 2018
This feature goes beyond the basic design of WebRTC. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by yini...@chromium.org
, Sep 27 2016