http-streaming
http-streaming copied to clipboard
FeatureRequest: Add configuration for a fast quality switching
Description
Hi!
I am working with STB and we are using Video.Js for HLS live playback. I noticed random freezes during playback.
I collected debug logs for ~6 hours of playback and noticed a lot of:
-
vhs-unknown-waiting
-
vhs-gap-skip
-
vhs-live-resync
-
waiting
events.
From the source code, I see that it will be always fast quality switching - meaning that as far as quality changes, already appended segments will be replaced

I decided to test the same stream, but with only one rendition allowed for the same playback time. As a result - The playback was flawless. There were no gap-skipping, live resyncs, and waitings.
What do you think about introducing a new configuration - something similar to fastSwitchEnabled
in the dashjs buffer configuration?
So that it will be possible to configure low-performant devices. Updated quality segments will be appended to the buffered end. Already appended segments will not be replaced.
Steps to reproduce
I suppose the easiest way is to throttle the Network and CPU up and down during playback via chrome dev tools.
Browsers
I was testing on Chromium 72.0.3626.121(Linux) and 98.0.4758.109(macOS)
Platforms
Linux, macOS
Other Plugins
No
Other JavaScript
The issue occurs even without any other js libraries