Skip to content
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

Have target latency only apply within some threshold of the live edge. #3300

Closed
wilaw opened this issue Jun 17, 2020 · 1 comment
Closed
Assignees
Milestone

Comments

@wilaw
Copy link
Member

wilaw commented Jun 17, 2020

The 'liveDelay' and 'liveCatchUpPlaybackRate' are very useful APIs that keep the player at a consistent latency behind live in a low latency playback scenario. However they always apply, even if the end user wants to seek back within the stream. Consider the case of a live sports event with a 3hr DVR window. The user watches at the live edge 3s behind live for most of the game, but then wants to seek back 60s to rewatch the goal that was scored. Although the seek() APi will take the playhead there, the live delay function will then accelerate playback to the maximum allowed (0.5 by default) until the user is brought back to 3s behind live. This is not a good user experience.

One solution to this problem is for the live delay target to only be active within a certain threshold range behind live. A reasonable threshold might be twice the live target that is set. So if livedelay is set to 3000ms, then anytime the playhead is within 0-6000ms, the live delay feature will be active. However, if the user seeks back beyond the 6000ms delay, then livedelay would be deactivated, allowing the user to watch the DVR content at a standard playback rate. If the user seeks back to live via their UI scrub-bar, it would bring them back to within the 6000ms threshold, and then live delay would be re-enabled.

These thresholds and in fact this solution are just suggestions. The implementers may have a better idea of how to enable DVR seekback while still supporting a live delay target.

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

No branches or pull requests

2 participants