Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Chunk in middle of playback not loaded #4976

Closed
5 tasks done
hipstersmoothie opened this issue Oct 19, 2022 · 1 comment · Fixed by #4977
Closed
5 tasks done

Chunk in middle of playback not loaded #4976

hipstersmoothie opened this issue Oct 19, 2022 · 1 comment · Fixed by #4977
Labels
Bug Confirmed Bug report confirmed or reproduced.
Milestone

Comments

@hipstersmoothie
Copy link

What version of Hls.js are you using?

v1.2.4

What browser (including version) are you using?

Chrome 106.0.5249.119 (Official Build) (arm64)

What OS (including version) are you using?

macOS Monterey

Test stream

https://descriptusercontent.com/published/2b693f24-20dc-43b1-b644-9ca49cf2758c/playlist.m3u8

Configuration

Used default on HLS Demo site

Additional player setup steps

No response

Checklist

Steps to reproduce

Load test url in hls demo page

Expected behaviour

Video plays fully.

What actually happened?

There is a chunk at 23s where the player pauses for a few seconds before resuming playback

Console output

0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: media seeking to 22.202, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: media seeking to 22.202, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [subtitle-stream-controller]: media seeking to 22.202, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Media seeked to 22.202
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loading fragment 7 cc: 0 of [0-21] level: 0, target: 40.2
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
​ [log] > [audio-stream-controller]: Loading fragment 5 cc: 0 of [0-19] track: 0, target: 29.931
​ [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
​ [log] > [audio-stream-controller]: Loaded fragment 5 of level 0
​ [log] > [stream-controller]: Loaded fragment 7 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 5 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Buffered audio sn: 5 of track 0 [0.000,35.944]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loading fragment 6 cc: 0 of [0-19] track: 0, target: 35.944
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loaded fragment 6 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 6 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Buffered audio sn: 6 of track 0 [0.000,41.935]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loading fragment 7 cc: 0 of [0-19] track: 0, target: 41.935
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 7 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loaded fragment 7 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 7 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Buffered audio sn: 7 of track 0 [0.000,47.949]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loading fragment 8 cc: 0 of [0-19] track: 0, target: 47.949
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loaded fragment 8 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Buffered main sn: 7 of level 0 [0.000,23.867][31.867,45.133]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loading fragment 8 cc: 0 of [0-21] level: 0, target: 45.133
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 8 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Buffered audio sn: 8 of track 0 [0.000,53.940]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loaded fragment 8 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 8 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Buffered main sn: 8 of level 0 [0.000,23.867][31.867,46.967]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loading fragment 9 cc: 0 of [0-21] level: 0, target: 46.967
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loaded fragment 9 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 9 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Buffered main sn: 9 of level 0 [0.000,23.867][31.867,47.933]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loading fragment 10 cc: 0 of [0-21] level: 0, target: 47.933
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loaded fragment 10 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 10 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Buffered main sn: 10 of level 0 [0.000,23.867][31.867,53.367]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loading fragment 11 cc: 0 of [0-21] level: 0, target: 53.367
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Loaded fragment 11 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 11 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Buffered main sn: 11 of level 0 [0.000,23.867][31.867,57.300]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loading fragment 9 cc: 0 of [0-19] track: 0, target: 53.94
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Loaded fragment 9 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [transmuxer.ts]: Flushed fragment 9 of level 0
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSING->PARSED
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: Buffered audio sn: 9 of track 0 [0.000,59.931]
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: PARSED->IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: media seeking to 23.419, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [audio-stream-controller]: media seeking to 23.419, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [subtitle-stream-controller]: media seeking to 23.419, state: IDLE
0593522d160ef12a33e404217757ccea1ab9df75.js:1 [log] > [stream-controller]: Media seeked to 23.419

Chrome media internals output

No response

@hipstersmoothie hipstersmoothie added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Oct 19, 2022
@robwalch robwalch added Confirmed Bug report confirmed or reproduced. and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Oct 20, 2022
@robwalch robwalch mentioned this issue Oct 20, 2022
3 tasks
@robwalch
Copy link
Collaborator

robwalch commented Oct 20, 2022

https://descriptusercontent.com/published/2b693f24-20dc-43b1-b644-9ca49cf2758c/playlist.m3u8

Looks like there's an issue remuxing sn 5 AVC. For some reason it contains samples that overlap with the previous segment. After adjusting the timestamps, the appended mp4 does not extend the buffer:

[log] > [stream-controller]: Loading fragment 5 cc: 0 of [0-21] level: 0, target: 24
[log] > [stream-controller]: IDLE->FRAG_LOADING
[warn] > AVC: 67 ms (-6000dts) overlapping between fragments detected
[log] > Video: First PTS/DTS adjusted: 24000/23933, delta: -67 ms
[log] > [stream-controller]: FRAG_LOADING->PARSING
[log] > [stream-controller]: Loaded fragment 5 of level 0
[log] > [transmuxer.ts]: Flushed fragment 5 of level 0
[log] > [stream-controller]: PARSING->PARSED
[log] > [stream-controller]: Buffered main sn: 5 of level 0 [0.000,23.867]

Avoiding the timestamp rewrite in this situation results in the media appending correctly #4977

@robwalch robwalch added this to the 1.2.5 milestone Oct 20, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Bug Confirmed Bug report confirmed or reproduced.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants