hls.js icon indicating copy to clipboard operation
hls.js copied to clipboard

Unable to resume video playback after navigating back and forth between two pages

Open janpe opened this issue 3 months ago • 4 comments

What version of Hls.js are you using?

1.6.13

What browser (including version) are you using?

Safari 26.0.1 (20622.1.22.118.4)

What OS (including version) are you using?

macOS 15.7.1

Test stream

https://hlsjs.video-dev.org/demo/

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 90
}

Additional player setup steps

Just the default demo setup

Checklist

  • [x] The issue observed is not already reported by searching on Github under https://github.com/video-dev/hls.js/issues
  • [x] The issue occurs in the stable client (latest release) on https://hlsjs.video-dev.org/demo and not just on my page
  • [x] The issue occurs in the latest client (main branch) on https://hlsjs-dev.video-dev.org/demo and not just on my page
  • [x] The stream has correct Access-Control-Allow-Origin headers (CORS)
  • [x] There are no network errors such as 404s in the browser console when trying to play the stream

Steps to reproduce

  1. Navigate to any website
  2. Navigate to https://hlsjs.video-dev.org/demo/
  3. Press play on the player
  4. Press the back button in the browser to navigate back to the previous page
  5. Press the "forward" button in the browser to navigate back to the demo
  6. The player is stuck in buffering and the error log fills with "Buffer append error" messages

It does not seem to reproduce when you disable cache from the Safari developer tools

Expected behaviour

When coming back to the demo the video should be resumable from the point it was left in or even just in pristine state and able to start the video.

What actually happened?

The user is unable to watch the video after navigating back and forth. A common use case:

  1. A website listing news or other items that may contain videos
  2. The user starting a video
  3. The user navigating to a single item page by pressing a link on one of the items
  4. The user then navigating back to the list page after reading the single item page
  5. Previously played video is now in a state where it cannot be resumed

Console output

[Log] [log] > – "[buffer-controller]:" – "Media source closed" (hls.js, line 19086)
[Log] [log] > – "resume buffering" (hls.js, line 36856)
[Info] [info] > – "[abr]:" – "buffer is empty, optimal quality level 4" (hls.js, line 4439)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "[transmuxer.ts]: Flushed main sn: 0 of level 4" (hls.js, line 17157)
[Log] [log] > – "[abr]:" – "picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":246440,\"minIndex\":0}" (hls.js, line 4511)
[Log] [log] > – "[stream-controller]:" – "Loading main sn: 0 of level 4 (frag:[0.008-10.008]) cc: 0 [0-63], target: 0.008" (hls.js, line 9945)
[Log] [log] > – "[stream-controller]:" – "IDLE->FRAG_LOADING" (hls.js, line 10895)
[Log] [log] > – "[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1↵        discontinuity: false↵        trackSwitch: fals…" (hls.js, line 17321)
"[transmuxer-interface]: Starting new transmux session for main sn: 0 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0.007800453514693828
        initSegmentChange: false"
[Log] [log] > – "[stream-controller]:" – "Loaded main sn: 0 of level 4" (hls.js, line 9632)
[Log] [log] > – "[mp4-remuxer]: reset next timestamp" (hls.js, line 17157)
[Log] [log] > – "[stream-controller]:" – "FRAG_LOADING->PARSING" (hls.js, line 10895)
[Log] [log] > – "[buffer-controller]:" – "queuing \"video\" append sn: 0 of level 4 cc: 0" (hls.js, line 19780)
[Warning] [warn] > – "[stream-controller]:" – "Buffer full error while media.currentTime (0) is not buffered, flush main buffer" (hls.js, line 10670)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Log] [log] > – "[stream-controller]:" – "PARSING->IDLE" (hls.js, line 10895)
[Log] [log] > – "[stream-controller]:" – "Reset loading state" (hls.js, line 10708)
[Warning] Error event: – {type: "mediaError", parent: "main", details: "bufferAppendError", …} (hls-demo.js, line 24817)
{type: "mediaError", parent: "main", details: "bufferAppendError", sourceBufferName: "video", frag: Fragment, …}Object
[Log] [log] > – "stopLoad" (hls.js, line 36838)
[Log] [log] > – "[stream-controller]:" – "IDLE->STOPPED" (hls.js, line 10895)
[Log] [log] > – "[subtitle-stream-controller]:" – "IDLE->STOPPED" (hls.js, line 10895)

Chrome media internals output


janpe avatar Oct 16 '25 10:10 janpe

When comparing the same behavior to Chrome, this looks like a browser issue. It is unclear why Safari restores the page state with the HTMLMediaElement's (Managed)MediaSource closed.

hls.recoverMediaError() resets the MediaSource state, allowing the video resume from its previous position.

Something like this on the right window or document event would get everything back up (see https://stackoverflow.com/questions/5004978/check-if-page-gets-reloaded-or-refreshed-in-javascript for a more complete approach):

if (performance.navigation.type === performance.navigation.TYPE_BACK_FORWARD && !hls.media.readyState) {
  hls.recoverMediaError();
}

robwalch avatar Oct 20 '25 15:10 robwalch

It looks like this issue is unique to desktop Safari, as I am unable to reproduce it on iOS or iPadOS 26. I recommend filing an issue with Feedback Assistant and sharing the issue here.

robwalch avatar Oct 27 '25 21:10 robwalch

Thanks @robwalch! Here's the issue I created https://feedbackassistant.apple.com/feedback/20850250

janpe avatar Oct 28 '25 06:10 janpe

It doesn’t reproduce during native Safari playback🤔

[Log] MediaSessionCoordinator::leave(E1AF2C7B) 
[Log] HTMLMediaElement::suspend(D6F2B83E5A52191C) 2
[Info] HTMLMediaElement::stopWithoutDestroyingMediaPlayer(D6F2B83E5A52191C) 
[Info] HTMLMediaElement::scheduleUpdateMediaState(D6F2B83E5A52191C) task scheduled
[Log] MediaElementSession::clientWillBeDOMSuspended(D6F2B83E5A52191C) 
[Log] MediaElementSession::processClientWillPausePlayback(D6F2B83E5A52191C) state = Playing
[Log] MediaElementSession::setState(D6F2B83E5A52191C) Paused
[Info] HTMLMediaElement::userCancelledLoad(D6F2B83E5A52191C) 
[Log] HTMLMediaElement::removeVideoTrack(D6F2B83E5A52191C) id: 9, 640x360 avc1.4D001E
[Log] VideoLayerManagerObjC::didDestroyVideoLayer(D6F2B83E5A52191C) 
[Log] VideoLayerManagerObjC::setTextTrackRepresentationLayer(D6F2B83E5A52191C) 
[Info] MediaElementSession::addBehaviorRestriction(D6F2B83E5A52191C) adding RequirePageConsentToResumeMedia
[Log] HTMLMediaElement::resume(D6F2B83E5A52191C) 
[Log] HTMLMediaElement::setPausedInternal(D6F2B83E5A52191C) false
[Info] HTMLMediaElement::scheduleUpdatePlayState(D6F2B83E5A52191C) task scheduled
[Log] HTMLMediaElement::dispatchPlayPauseEventsIfNeedsQuirks(D6F2B83E5A52191C) 
[Info] MediaElementSession::removeBehaviorRestriction(D6F2B83E5A52191C) removed RequirePageConsentToResumeMedia
[Log] MediaElementSession::autoplayPermitted(D6F2B83E5A52191C) Returning FALSE because frame is offscreen
[Info] MediaElementSession::setHasPlaybackTargetAvailabilityListeners(D6F2B83E5A52191C) true
[Log] HTMLMediaElement::addEventListener(D6F2B83E5A52191C) 'webkitplaybacktargetavailabilitychanged'
[Info] MediaElementSession::hasWirelessPlaybackTargets(D6F2B83E5A52191C) returning true
[Log] HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent(D6F2B83E5A52191C) hasTargets = true
[Info] HTMLMediaElement::scheduleUpdateMediaState(D6F2B83E5A52191C) task scheduled
[Info] HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless(D6F2B83E5A52191C) false
[Debug] HTMLMediaElement::dispatchEvent(D6F2B83E5A52191C) abort
[Log] MediaElementSession::autoplayPermitted(D6F2B83E5A52191C) Returning FALSE because frame is offscreen
[Info] HTMLMediaElement::scheduleUpdatePlayState(D6F2B83E5A52191C) lambda(), task fired
[Debug] HTMLMediaElement::dispatchEvent(D6F2B83E5A52191C) playing
[Debug] HTMLMediaElement::dispatchEvent(D6F2B83E5A52191C) pause

hongjun-bae avatar Oct 28 '25 06:10 hongjun-bae

I am not able to reproduce the issue on iOS 26.2 (23C55). Closing as third-party issue resolved.

robwalch avatar Dec 16 '25 21:12 robwalch

@robwalch

I am not able to reproduce the issue on iOS 26.2 (23C55). Closing as third-party issue resolved.

If I understood correctly, this was only ever an issue in desktop Safari, right? 🤔

Kauhsa avatar Dec 18 '25 08:12 Kauhsa