-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Video freezes on rendition switch in LLHLS #5111
Comments
|
There seems to be an issue with part loading order after The player selects mid-segment parts to switch on (assumes all parts are independent if not marked) which is what we want (overlapping part indexes are ok).
but then the part index resets to 0 after a level update
I would expect to see part 3 buffered, and the 4 and 5 loaded and buffered. I don't know how it got from loading 3, to buffering 4 to the selecting 0. Something must have gotten fudged on playlist refresh. Not sure if this is an issue with merging deltas and parts or a streaming controller state issue, but if it's not a stream issue it should be corrected in hls.js. |
Thanks @robwalch!
You're right, that was my mistake in trying to reproduce the issue. In the original issue reported by our QA team, they didn't switch levels manually, they noticed it when the player initiated the level switch automatically.
Not sure what you meant by "none of the parts signal whether they are independent or not", we are using the I ran some more tests, this time with 'Currently loaded level', and I'm still able to reproduce the stalls (even though it obviously behaves much better than 'Currently played level' :) ). It it possible to reproduce also with the video-only version of this stream, by adding In one of the tests I saw the following sequence of parts being loaded - One last thing, I read the description of #5102, but with my current familiarity level of the code, it's all Greek to me :) do you think this PR can help here? |
I don't think it is relative to this issue. What it will do is improve the accuracy of level reporting for the |
I did not see the
With a part hold back and GOP of 3 seconds, while streaming parts, the player can only switch on For starters though we should look at the fragment-part selection:
Thanks. This is helpful. I would expect the player to always start on an independent part. Figuring out why it would begin a new level on anything other than part 0 or 3 in this case is the first step. This happens in https://github.com/video-dev/hls.js/blob/v1.3.0-beta.2/src/controller/base-stream-controller.ts#L983 The next step will be figuring out why it "changed its mind". Looking at
|
… been loaded and next part is not listed Fixes #5111
That was it. Fixed in #5122 I can still reproduce freezes of ~1-2 seconds with 3 second holdback, depending on whether a switch forces appends over the playhead. These freezes and stalls should be much less frequent now that the player isn't backtracking over the switch area. There could still be a case where if parts 0-2 were loaded in rendition A then switch to rendition B but only parts 0-2 are listed, then part 0 will be picked instead of waiting for part 3 (same for parts 3-5). Seems unlikely with reports working. |
Freezing video when appends are made before |
Thanks @robwalch! |
I'd like to continue to track that via #3596. Comments I made yesterday about the timing of auto switches (or when load level is changed relative to the availability of independent parts) here still apply. |
What version of Hls.js are you using?
v1.2.5-0.canary.8760
What browser (including version) are you using?
Version 108.0.5359.124 (Official Build) (64-bit)
What OS (including version) are you using?
Windows 10
Test stream
https://klive-stg.kaltura.com/env/cluster-1-a.live.nvq1/live/hls/p/5174/e/0_rtdixfrs/tl/viewer/st/0/ll/1/t/WN9N1j2oRoBvtPzyLqDxVw/master-s35-s34-s33-s42-s32-s43.m3u8
Configuration
Additional player setup steps
No response
Checklist
Steps to reproduce
Play the provided test stream, and occasionally change the video quality using the quality selector
Expected behaviour
The video would play smoothly
What actually happened?
The video freezes for ~3 sec on every quality switch.
I noticed that rendition reports are not used, since we are omitting attributes from EXT-X-RENDITION-REPORT tags, and opened #5110. This PR fixes the rendition reports issue (I no longer see a request for a playlist without _HLS_msn / _HLS_part after the fix), but the freeze issue remains.
Console output
Chrome media internals output
No response
The text was updated successfully, but these errors were encountered: