Skip to content

Add playoutDelayHint to webrtc receiver for smoother video playback #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mgroshans
Copy link

In general the idea is to alleviate stuttering that can occur even
without packet loss due to inconsistent packet timing by adding a small
buffer before playback.

This specific setting seems only partially supported and has changed
names several times. In the latest extensions spec[1], it is
defined as simply playoutDelay but only the slightly older name
playoutDelayHint property appears to have any effect on my testing for
Chrome 99.0.4844.51 on Windows 10. There appears to be an open issue to
add support for Firefox[2].

[1] https://w3c.github.io/webrtc-extensions/#rtcrtpreceiver-interface
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1592988

In general the idea is to alleviate stuttering that can occur even
without packet loss due to inconsistent packet timing by adding a small
buffer before playback.

This specific setting seems only partially supported and has changed
names several times. In the latest extensions spec[1], it is
defined as simply `playoutDelay` but only the slightly older name
`playoutDelayHint` property appears to have any effect on my testing for
Chrome 99.0.4844.51 on Windows 10. There appears to be an open issue to
add support for Firefox[2].

[1] https://w3c.github.io/webrtc-extensions/#rtcrtpreceiver-interface
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1592988
@mgroshans
Copy link
Author

Since this adds latency it may be more desirable to make it optional or add it to the configuration, but I will leave that up to maintainers. I also think it's somewhat (but not wholly) redundant if GRVYDEV/Lightspeed-webrtc#30 is implemented.

And lastly I'll just emphasize that this will not fix all stuttering. Specifically it will only address stuttering that occurs even without packet loss; any stuttering caused by packet loss will remain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant