Is there a way to blacklist poorly performing fragments when buffering m3u8 streams you don’t control? #6932
Unanswered
MechanicalMink
asked this question in
Q&A
Replies: 1 comment 1 reply
-
Mark bad fragments with a gap (v1.5+). |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Consider a poorly constructed m3u8 stream hosted on a foreign server. Some specific fragments of some specific levels just will not load, either due to CORS issues or timeouts, and there is absolutely nothing we can do about that serverside. Upon encountering one of these fragments during buffering, HLS.js will throw a NetworkError and the stream controller will move from "IDLE" into the "STOPPED" condition.
If I just call hls.startload(-1) in the handler, it will keep trying to buffer the broken fragment in a loop. If I try to provide it with a timestamp or frag sn beyond the broken frag, it will still get stuck trying to buffer the same broken frag in a loop. The only way I can currently seem to get past the broken fragment is to wait for the playhead to stall at it, skip the playhead past it, and then the buffer will start filling again.
Is there a way I can blacklist a given frag sn in the network error handler such that I can stop retrying to buffer it when I call hls.startload()? Specifically, can I do this on the client side?
Beta Was this translation helpful? Give feedback.
All reactions