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

Though m3u8 playlist is updating, hls.js will not load new ts segment file (reopening #1850) #3913

Closed
5 tasks done
Sylvain228 opened this issue May 18, 2021 · 8 comments
Closed
5 tasks done

Comments

@Sylvain228
Copy link

Sylvain228 commented May 18, 2021

What version of Hls.js are you using?

1.04

What browser and OS (including versions) are you using?

Chrome 90.0.4430.212 Arm64 Mac M1. Also reproduced on Intel

Test stream:

https://ireplay.tv/test/mrgarcintv.m3u8
https://ireplay.tv/demo/?src=https%3A%2F%2Fireplay.tv%2Ftest%2Fmrgarcintv.m3u8&setting=default
Same on other live m3u8

Configuration:

Default configuration, debug: true

Checklist

  • The stream has correct Access-Control-Allow-Origin headers (CORS)
  • There are no network errors such as 404s in the browser console when trying to play the stream

Steps to reproduce

  1. Very bad network conditions (easily reproduced on constrained bandwidth)
  2. Check network under Chrome development tools

I'd say it happens when first segment loading is longer than target duration AND initialLiveManifestSize is set to default 1, it happens more often

Expected behavior

m3u8, mp4 and m4s files to load

Actual behavior

only m3u8 files load

Workaround

https://ireplay.tv/demo/?src=https%3A%2F%2Fireplay.tv%2Ftest%2Fmrgarcintv.m3u8
This configuration (which forces lowest level, and change initialLiveManifestSize, optimizes initial cache among others, as I suspect initial loading to be at fault) seems to make this behaviour less frequent

autoStartLoad: true,
startPosition: 0,
startLevel: 0,
debug: true,
maxBufferLength: 60,
capLevelToPlayerSize: true,
maxMaxBufferLength: 600,
backBufferLength: Infinity,
maxBufferSize: 60 * 1000 * 1000,
maxBufferHole: 0.5,
maxLoadingDelay: 5,
defaultAudioCodec: 'mp4a.40.2',
initialLiveManifestSize: 3,
liveSyncDurationCount: 9,
enableWorker: true,
fragLoadingMaxRetry: 10,
manifestLoadingMaxRetry: 10,
levelLoadingMaxRetry: 10,
lowLatencyMode: false

Console output

hls.js@latest:1 [log] >
hls.js@latest:1 [log] > stopLoad
hls.js@latest:1 [log] > loadSource:https://ireplay.tv/test/mrgarcintv.m3u8
hls.js@latest:1 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.js@latest:1 [log] > attachMedia
hls.js@latest:1 [log] > [level-controller]: manifest loaded, 3 level(s) found, first bitrate: 7000000
hls.js@latest:1 [log] > 2 bufferCodec event(s) expected
hls.js@latest:1 [log] > startLoad(-1)
hls.js@latest:1 [log] > [level-controller]: switching to level 2 from -1
hls.js@latest:1 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "audio1" group-id
hls.js@latest:1 [log] > [audio-track-controller]: Now switching to audio-track index 0
hls.js@latest:1 [log] > [audio-stream-controller]: STOPPED->IDLE
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 2 with URL-id 0 https://ireplay.tv/test/rate_5_13.m3u8
hls.js@latest:1 [log] > [stream-controller]: STOPPED->IDLE
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->STOPPED
hls.js@latest:1 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
hls.js@latest:1 [log] > [subtitle-stream-controller]: STOPPED->IDLE
hls.js@latest:1 [log] > [buffer-controller]: Media source opened
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9612-9621]
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9612,9621],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist - first load, unknown sliding
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 track: 0, target: 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
DevTools failed to load SourceMap: Could not load content for https://cdn.jsdelivr.net/npm/hls.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
hls.js@latest:1 [log] > [level-controller]: reload live playlist 2 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 2 loaded [344,353], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist - first load, unknown sliding
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 60.000
hls.js@latest:1 [log] > [stream-controller]: Start time offset found in playlist, adjust startPosition to 0.01
hls.js@latest:1 [log] > [stream-controller]: Loading fragment initSegment cc: 0 level: 2, target: 0
hls.js@latest:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
hls.js@latest:1 [log] > Adjusting PTS using programDateTime delta -3000ms, sliding:-3.000 https://ireplay.tv/test/rate_0_13.m3u8
hls.js@latest:1 [log] > [audio-stream-controller]: Start time offset found in playlist, adjust startPosition to 0.01
hls.js@latest:1 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Buffered audio sn: initSegment of track 0
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [stream-controller]: FRAG_LOADING->IDLE
hls.js@latest:1 [log] > [stream-controller]: Buffered main sn: initSegment of level 2
hls.js@latest:1 [log] > [stream-controller]: Loading fragment 344 cc: 48 of [344-353] level: 2, target: 0.01
hls.js@latest:1 [log] > [stream-controller]: IDLE->FRAG_LOADING
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [audio-stream-controller]: Waiting for video PTS in continuity counter 48 of live stream before loading audio fragment 9612 of level 0
hls.js@latest:1 [log] > [audio-stream-controller]: IDLE->WAITING_INIT_PTS
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9613-9622]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9622--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9613,9622],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:3.000
hls.js@latest:1 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 2 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_5_13.m3u8
hls.js@latest:1 [log] > [level-controller]: live playlist 2 REFRESHED 355--1
hls.js@latest:1 [log] > [level-controller]: reload live playlist 2 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 2 loaded [346,355], cc [48, 48] duration:60
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 72.000
hls.js@latest:1 [log] > demuxing in webworker
hls.js@latest:1 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 344 p: -1 level: 2 id: 1
discontinuity: true
trackSwitch: true
contiguous: false
accurateTimeOffset: false
timeOffset: 0
hls.js@latest:1 [log] > [stream-controller]: Loaded fragment 344 of level 2
da0cc201-8de4-4bf2-843e-e3385054a3b8:1 [log] >
da0cc201-8de4-4bf2-843e-e3385054a3b8:1 [log] > [transmuxer.ts]: Flushed fragment 344 of level 2
hls.js@latest:1 [warn] > [stream-controller]: The loading context changed while buffering fragment 344 of level 2. This chunk will not be buffered.
c._handleTransmuxComplete @ hls.js@latest:1
e.handleTransmuxComplete @ hls.js@latest:1
e.onWorkerMessage @ hls.js@latest:1
hls.js@latest:1 [log] > [stream-controller]: Start time offset found in playlist, adjust startPosition to 0.01
hls.js@latest:1 [log] > [stream-controller]: FRAG_LOADING->IDLE
hls.js@latest:1 [warn] > [stream-controller]: The loading context changed while buffering fragment 344 of level 2. This chunk will not be buffered.
c._handleTransmuxComplete @ hls.js@latest:1
e.handleTransmuxComplete @ hls.js@latest:1
e.onWorkerMessage @ hls.js@latest:1
hls.js@latest:1 [log] > [stream-controller]: Start time offset found in playlist, adjust startPosition to 0.01
hls.js@latest:1 [log] > [level-controller]: switching to level 0 from 2
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 0 with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [stream-controller]: IDLE->WAITING_LEVEL
hls.js@latest:1 [log] > [level-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 0 loaded [9594,9603], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist - first load, unknown sliding
hls.js@latest:1 [log] > Adjusting PTS using programDateTime delta 1000ms, sliding:13.000 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 73.000
hls.js@latest:1 [log] > [stream-controller]: WAITING_LEVEL->IDLE
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9614-9623]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9623--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9614,9623],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:9.000
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [level-controller]: live playlist 0 REFRESHED 9604--1
hls.js@latest:1 [log] > [level-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 0 loaded [9595,9604], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist sliding:19.000
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 79.000
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9615-9624]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9624--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9615,9624],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:15.000
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [level-controller]: live playlist 0 REFRESHED 9605--1
hls.js@latest:1 [log] > [level-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 0 loaded [9596,9605], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist sliding:25.000
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 85.000
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9616-9625]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9625--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9616,9625],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:21.000
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [level-controller]: live playlist 0 REFRESHED 9606--1
hls.js@latest:1 [log] > [level-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 0 loaded [9597,9606], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist sliding:31.000
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 91.000
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9617-9626]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9626--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9617,9626],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:27.000
hls.js@latest:1 [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
hls.js@latest:1 [log] > [level-controller]: live playlist 0 REFRESHED 9607--1
hls.js@latest:1 [log] > [level-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [stream-controller]: Level 0 loaded [9598,9607], cc [48, 48] duration:60
hls.js@latest:1 [log] > [stream-controller]: Live playlist sliding:37.000
hls.js@latest:1 [log] > [buffer-controller]: Updating Media Source duration to 97.000
hls.js@latest:1 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
hls.js@latest:1 [log] > [audio-track-controller]: audioTrack 0 loaded [9618-9627]
hls.js@latest:1 [log] > [audio-track-controller]: live playlist 0 REFRESHED 9627--1
hls.js@latest:1 [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
hls.js@latest:1 [log] > [audio-stream-controller]: Track 0 loaded [9618,9627],duration:60
hls.js@latest:1 [log] > [audio-stream-controller]: Live playlist sliding:33.000
​ [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
​ [log] > [level-controller]: live playlist 0 REFRESHED 9608--1
​ [log] > [level-controller]: reload live playlist 0 in 6000 ms
​ [log] > [stream-controller]: Level 0 loaded [9599,9608], cc [48, 48] duration:60
​ [log] > [stream-controller]: Live playlist sliding:43.000
​ [log] > [buffer-controller]: Updating Media Source duration to 103.000
​ [log] > [audio-track-controller]: loading audio-track playlist for id: 0
​ [log] > [audio-track-controller]: audioTrack 0 loaded [9620-9629]
​ [log] > [audio-track-controller]: live playlist 0 REFRESHED 9629--1
​ [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
​ [log] > [audio-stream-controller]: Track 0 loaded [9620,9629],duration:60
​ [log] > [audio-stream-controller]: Live playlist sliding:45.000
​ [log] > [level-controller]: Attempt loading level index 0 at sn undefined part undefined with URL-id 0 https://ireplay.tv/test/rate_2_13.m3u8
​ [log] > [level-controller]: live playlist 0 REFRESHED 9609--1
​ [log] > [level-controller]: reload live playlist 0 in 6000 ms
​ [log] > [stream-controller]: Level 0 loaded [9600,9609], cc [48, 48] duration:60
​ [log] > [stream-controller]: Live playlist sliding:49.000
​ [log] > [buffer-controller]: Updating Media Source duration to 109.000
​ [log] > [audio-track-controller]: loading audio-track playlist for id: 0
​ [log] > [audio-track-controller]: audioTrack 0 loaded [9621-9630]
​ [log] > [audio-track-controller]: live playlist 0 REFRESHED 9630--1
​ [log] > [audio-track-controller]: reload live playlist 0 in 6000 ms
​ [log] > [audio-stream-controller]: Track 0 loaded [9621,9630],duration:60
​ [log] > [audio-stream-controller]: Live playlist sliding:51.000

@robwalch
Copy link
Collaborator

Hi @Sylvain228,

Try debugging around this log statement to get more info on why the first loaded segment is discarded after taking so long to load:

hls.js@latest:1 [warn] > [stream-controller]: The loading context changed while buffering fragment 344 of level 2. This chunk will not be buffered.

@robwalch
Copy link
Collaborator

Related to #1850

@robwalch robwalch added the Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. label May 19, 2021
@ohmercy
Copy link

ohmercy commented May 25, 2021

I'm having the same or similar issue.
hls.js 1.0.4
Mac Intel, Firefox 88.0.1

Happens once every 10-20 player loads, only with StartLevel: -1

{
"debug": true,
"enableWorker": false,
"lowLatencyMode": true,
"backBufferLength": 90,
"capLevelToPlayerSize": false,
"startLevel": -1
}

Observations:

  • Chunklist level 0 is loaded
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:1271
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2021-05-25T19:40:18.490+00:00
#EXTINF:6.0,
media-u2917jmfb_b600000_vo_1271.ts
#EXTINF:6.0,
media-u2917jmfb_b600000_vo_1272.ts
#EXTINF:6.0,
media-u2917jmfb_b600000_vo_1273.ts
  • The first ts segment 1271 is downloaded for testing bandwidth.

  • Chunklist of a higher level is downloaded

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:1272
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2021-05-25T19:40:24.500+00:00
#EXTINF:6.0,
media-uq8bg5uba_b6000000_vo_1272.ts
#EXTINF:6.0,
media-uq8bg5uba_b6000000_vo_1273.ts
#EXTINF:6.0,
media-uq8bg5uba_b6000000_vo_1274.ts

  • No more ts are downloaded, only chunklists of the same level.

  • Player shows spinner. No errors in devtools or HLS demo player

Seems to occur when this second chunkist shifted further than the first downloaded chunklist (not containing 1271)

Screenshot 2021-05-26 at 00 13 56

@robwalch
Copy link
Collaborator

@ohmercy please file a new issue and include a test stream.

@Sylvain228 I've identified an issue with how hls.js applies TIME-OFFSET included in your playlist that is preventing it from staying in sync with your stream.

@robwalch robwalch added Bug and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels May 28, 2021
@robwalch robwalch modified the milestone: 1.0.5 May 28, 2021
@robwalch robwalch added the Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. label May 28, 2021
@robwalch
Copy link
Collaborator

The other issue you are probably both facing is your streams try to start loading the first segment in the playlist. This is also the first to be removed. By the time hls.js loads and parses the segment, it has been removed from the playlist and this causes the warning:
hls.js@latest:1 [warn] > [stream-controller]: The loading context changed while buffering fragment 344 of level 2. This chunk will not be buffered.
and the segment is not loaded, starting the process over again.

@robwalch
Copy link
Collaborator

This stream also has playlists aligned by PDT, but then audio which once aligned with video is over a second later than where it's expected in the playlist. This breaks autoplay because audio isn't appended where it's needed at start.

@robwalch
Copy link
Collaborator

Your #EXT-X-MEDIA-SEQUENCE value resets to 1 while streaming:

#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:6
#EXT-X-START:TIME-OFFSET=0.01
#EXT-X-DISCONTINUITY-SEQUENCE:453
#EXT-X-MEDIA-SEQUENCE:632
#EXT-X-PROGRAM-DATE-TIME:2021-05-28T03:46:47+02:00
#EXT-X-MAP:URI="https://ireplay.tv/assets/test/segm/J1BtryPz6WY/J1BtryPz6WY-5_0.mp4"
#EXTINF:2,
https://ireplay.tv/assets/test/segm/J1BtryPz6WY/J1BtryPz6WY-5_633.m4s
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2021-05-28T03:46:50+02:00
#EXT-X-MAP:URI="https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_0.mp4"
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_1.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_2.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_3.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_4.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_5.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_6.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_7.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_8.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_9.m4s
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:6
#EXT-X-START:TIME-OFFSET=0.01
#EXT-X-DISCONTINUITY-SEQUENCE:454
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PROGRAM-DATE-TIME:2021-05-28T03:46:53+02:00
#EXT-X-MAP:URI="https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_0.mp4"
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_2.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_3.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_4.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_5.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_6.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_7.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_8.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_9.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_10.m4s
#EXTINF:6,
https://ireplay.tv/assets/test/segm/REaVT8G_JuQ/REaVT8G_JuQ-5_11.m4s

From the spec:

6.2.2. Live Playlists

The server MAY limit the availability of Media Segments by removing
Media Segments from the Playlist file (Section 6.2.1). If Media
Segments are to be removed, the Playlist file MUST contain an EXT-X-
MEDIA-SEQUENCE tag. Its value MUST be incremented by 1 for every
Media Segment that is removed from the Playlist file; it MUST NOT
decrease or wrap. Clients can malfunction if each Media Segment does
not have a consistent, unique Media Sequence Number.

@robwalch robwalch added Stream Issue and removed Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels May 28, 2021
robwalch pushed a commit that referenced this issue May 28, 2021
@robwalch robwalch added the Bug label May 28, 2021
@robwalch robwalch added this to the 1.0.5 milestone May 28, 2021
robwalch pushed a commit that referenced this issue May 28, 2021
@Sylvain228
Copy link
Author

Hi Rob,
Schedule has been reset at the time you check so that's why you got the MEDIA-SEQUENCE 1. I do a VOD2live solution (since 2013), so if you want test streams i'd be happy to help.
Thank you for the information about the time-offset. I can get a workaround with liveSyncDurationCount which should also partially solve the main issue by providing more time to load first segment (I also added more segments in my playlist). Thanks.
BTW I choose 0.01 because Apple also have a problem (for years) on this
https://developer.apple.com/forums/thread/69442

robwalch pushed a commit that referenced this issue May 28, 2021
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

3 participants