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

Lower low-latency mode #5412

Open
Skehmatics opened this issue Nov 15, 2022 · 2 comments
Open

Lower low-latency mode #5412

Skehmatics opened this issue Nov 15, 2022 · 2 comments

Comments

@Skehmatics
Copy link

Describe the problem to be solved

The live-streaming latency, even when in low-latency mode, leaves a little to be desired when compared to proprietary solutions

A project I'm heading is working on a possible solution in our fork, and wanted to gauge if this should be upstreamed once complete

Describe the solution you would like

  • Implement a dedicated low latency media loader using VHS (as P2P is disabled in low latency mode anyways)
  • Utilize the latency compensation technique from owncast to keep the player as close as possible to the live edge
    • Add a "live segment transmission delay" admin configuration option (to handle cases where a CDN has been configured), and use that to set the targets used in compensation
  • As this may be non-conformant (iirc), pushing closer than the HLS spec minimum buffer could be opt-in for the user (as is done on twitch)
@Chocobozzz
Copy link
Owner

Chocobozzz commented Nov 16, 2022

Hello,

I think it would be simpler to wait LL-HLS support in hls.js https://github.com/video-dev/hls.js/projects/7
Unfortunately (fortunately?) we're happy with hls.js and don't want to switch on VHS

@Skehmatics
Copy link
Author

Skehmatics commented Nov 16, 2022

Understood! Nothing should theoretically prevent hls.js from doing the same (it even has a similar latency compensation mechanism via maxLiveSyncPlaybackRate), however we were never able to get it to function properly with liveSyncDurationCount under 2, while VHS has little problem with this.

If we can find out how to get this working in hls.js, we'll switch over to that to open a path to upstream

Thanks for all you do Chocobozzz~

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