New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 648918 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Feature



Sign in to add a comment

WebRTC music playout is not in in strict

Reported by christia...@googlemail.com, Sep 21 2016

Issue description

UserAgent: 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.
 
Components: -Internals>Media Blink>WebRTC>Audio
hta: is there a way or being planned to have a way to disable the jitter buffer from the Web APIs?
Cc: hta@chromium.org
(adding hta)
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...
Cc: tlegrand@chromium.org solenberg@chromium.org hlundin@chromium.org
hlundin@ et al: Is this possible today or would it require WebRTC library changes?

Comment 6 by hta@chromium.org, 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.

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.

Owner: tlegrand@chromium.org
Status: Assigned (was: Unconfirmed)
This seems more like a feature request - to tlegrand@ to have a look and prioritize.
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.



This is essentially a duplicate of feature request https://bugs.chromium.org/p/webrtc/issues/detail?id=677.

Labels: -Type-Bug -Pri-2 Pri-3 Type-Feature
Status: WontFix (was: Assigned)
This feature goes beyond the basic design of WebRTC.

Sign in to add a comment