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

video (but not audio) playback freezes after seeking back

Open luwes opened this issue 1 year ago • 18 comments

What version of Hls.js are you using?

v1.5.16

What browser (including version) are you using?

Chrome 129.0.6668.100

What OS (including version) are you using?

MacOS 14.6.1

Test stream

https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fstream.mux.com%2F00pwc00zuut01c4KeE939WuLERfgSWYxFXOIMSnTW1X5y8.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 8,
  "renderTextTracksNatively": false,
  "liveDurationInfinity": true,
  "capLevelToPlayerSize": true,
  "capLevelOnFPSDrop": true,
  "startPosition": 0
}

Additional player setup steps

No response

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. Go to https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fstream.mux.com%2F00pwc00zuut01c4KeE939WuLERfgSWYxFXOIMSnTW1X5y8.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==
  2. Play video and seek into half the video
  3. Seek back with keyboard left arrow a few times
  4. Wait until video freezes

Expected behaviour

Video plays back normally without freezing.

What actually happened?

The video playback freezes while audio playback is fine and is audible.

I tested it on Safari and Firefox and from brief testing it didn't seem to be an issue on those browsers.

related issue https://github.com/muxinc/elements/issues/940

Console output

Using Hls.js config: Object
 [log] > Debug logs enabled for "Hls instance" in hls.js version 1.5.16
 [log] > stopLoad
 [log] > loadSource:https://stream.mux.com/00pwc00zuut01c4KeE939WuLERfgSWYxFXOIMSnTW1X5y8.m3u8
 [log] > [stream-controller]: Trigger BUFFER_RESET
 [log] > attachMedia
 [log] > [buffer-controller] created media source: MediaSource
 [log] > [buffer-controller] Media source opened
 [log] > [level-controller]: manifest loaded, 3 level(s) found, first bitrate: 2071300
 [log] > setting initial bwe to 2071300
 [log] > [buffer-controller] 2 bufferCodec event(s) expected
 [log] > Setting autoLevelCapping to 2: 720p@2071300 for media 2225.59375x1112.796875
 [log] > set autoLevelCapping:2
 [log] > [abr] picked start tier {"codecSet":"avc1,mp4a","videoRanges":["SDR"],"preferHDR":false,"minFramerate":0,"minBitrate":418000}
 [info] > [abr] switch candidate:2->2 adjustedbw(2071300)-bitrate=0 ttfb:0.1 avgDuration:0.0 maxFetchDuration:4.0 fetchDuration:0.1 firstSelection:true codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:-1
 [log] > startLoad(0)
 [log] > [level-controller]: Switching to level 2 (720p SDR avc1,mp4a @2071300) from level -1
 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in group(s): audio-hi-0
 [log] > [audio-track-controller]: Switching to audio-track 0 "Default" lang:und group:audio-hi-0 channels:2
 [log] > [audio-stream-controller]: Reset loading state
 [log] > [audio-stream-controller]: STOPPED->IDLE
 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
 [log] > [level-controller]: Loading level index 2 with https://manifest-gcp-us-east4-vop1.fastly.mux.com/Yv46jMaETcxZGNv7BXUaQpVCBBMC4JwJLg5imLJYwV8sbjaRUixyST6w02pRwdtYgwRKLS652ABlNMMIFUkqs85Ro702kDuZ9A/rendition.m3u8?cdn=fastly&expires=1729638000&skid=default&signature=NjcxODJlNzBfZjRhN2ExODRjN2ZkYzc4MDliZjBlYmNhMzdmMzM5MDlmNDFmODdkM2QxNTdjZGNmZWUxOGUwOGE5ZTZhMTkyYg==&vsid=W00yB02QPY3SQ3XBk7qs5H31xePQZOf7ihmhJqUPW02fcm02A8eSFNJI9uw5Pv01cNzblAyLvZQbaLnw
 [log] > [stream-controller]: STOPPED->IDLE
 [log] > [audio-track-controller]: loading audio-track playlist 0 "Default" lang:und group:audio-hi-0
 [log] > [audio-stream-controller]: WAITING_TRACK->STOPPED
 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
 [log] > [subtitle-stream-controller]: STOPPED->IDLE
 [log] > [stream-controller]: Level 2 loaded [0,139][part-139--1], cc [0, 0] duration:697.46667
 [log] > [buffer-controller] Updating Media Source duration to 697.467
 [log] > [stream-controller]: Loading fragment initSegment cc: 0 of [0-139] level: 2, target: 0
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-track-controller]: Audio track 0 "Default" lang:und group:audio-hi-0 loaded [0-139]
 [log] > [audio-stream-controller]: Audio track 0 loaded [0,139][part-139--1],duration:697.46667
 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 of [0-139] track: 0, target: 0
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true. See: https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
drawLineX @ hls-demo.js:23967Understand this warning
 [log] > [stream-controller]: FRAG_LOADING->IDLE
 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-139] level: 2, target: 0
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-139] track: 0, target: 0
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > injecting Web Worker for "audio"
 [log] > [audio-stream-controller]: Unknown video PTS for cc 0, waiting for video PTS before demuxing audio frag 0 of [0 ,139],track 0
 [log] > [audio-stream-controller]: FRAG_LOADING->WAITING_INIT_PTS
 [log] > [audio-stream-controller]: Loaded fragment 0 of level 0
 [log] > injecting Web Worker for "main"
 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 2 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
        initSegmentChange: true
 [log] > [stream-controller]: Loaded fragment 0 of level 2
 [log] > Debug logs enabled for "audio" in hls.js version 1.5.16
 [log] > Debug logs enabled for "main" in hls.js version 1.5.16
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640020/avc1.640020]
 [log] > [buffer-controller] 1 bufferCodec event(s) expected video
 [log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 0.06666666666666667
 [log] > [audio-stream-controller]: WAITING_INIT_PTS->FRAG_LOADING
 [log] > [transmuxer-interface, audio]: Starting new transmux session for sn: 0 p: -1 level: 0 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 0
        initSegmentChange: true
 [log] > [transmuxer.ts]: Flushed fragment 0 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [audio-stream-controller]: Init audio buffer, container:audio/mp4, codecs[level/parsed]=[mp4a.40.2/mp4a.40.2]
 [log] > [buffer-controller] 0 bufferCodec event(s) expected audio
 [log] > [buffer-controller] creating sourceBuffer(video/mp4;codecs=avc1.640020)
 [log] > [buffer-controller] creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
 [log] > [stream-controller]: Alternate track found, use video.buffered to schedule main fragment loading
 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 0 of track 0 (frag:[-0.067-4.949] > buffer:[0.000-5.016])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 0 of level 2 (frag:[0.000-4.933] > buffer:[0.000-4.933])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 1 cc: 0 of [0-139] level: 2, target: 4.933
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 1 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 1 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 1 of level 2 (frag:[4.933-9.933] > buffer:[0.000-9.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 2 cc: 0 of [0-139] level: 2, target: 9.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 2 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 2 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 2 of level 2 (frag:[9.933-14.933] > buffer:[0.000-14.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 3 cc: 0 of [0-139] level: 2, target: 14.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 3 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 3 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 3 of level 2 (frag:[14.933-19.933] > buffer:[0.000-19.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 4 cc: 0 of [0-139] level: 2, target: 19.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 4 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 4 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 4 of level 2 (frag:[19.933-24.933] > buffer:[0.000-24.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 5 cc: 0 of [0-139] level: 2, target: 24.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 5 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 5 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loading fragment 1 cc: 0 of [0-139] track: 0, target: 5.016
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Buffered main sn: 5 of level 2 (frag:[24.933-29.933] > buffer:[0.000-29.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 6 cc: 0 of [0-139] level: 2, target: 29.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 1 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 1 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Loaded fragment 6 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 6 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 1 of track 0 (frag:[4.949-9.941] > buffer:[0.000-9.941])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 2 cc: 0 of [0-139] track: 0, target: 9.941
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 2 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 2 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 2 of track 0 (frag:[9.941-14.933] > buffer:[0.000-14.933])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 3 cc: 0 of [0-139] track: 0, target: 14.933
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Buffered main sn: 6 of level 2 (frag:[29.933-34.933] > buffer:[0.000-34.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 7 cc: 0 of [0-139] level: 2, target: 34.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 3 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 3 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Loaded fragment 7 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 7 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 3 of track 0 (frag:[14.933-19.949] > buffer:[0.000-19.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 4 cc: 0 of [0-139] track: 0, target: 19.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 4 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 4 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 4 of track 0 (frag:[19.949-24.941] > buffer:[0.000-24.941])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 5 cc: 0 of [0-139] track: 0, target: 24.941
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 5 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 5 of level 0
 [log] > [stream-controller]: Buffered main sn: 7 of level 2 (frag:[34.933-39.933] > buffer:[0.000-39.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 8 cc: 0 of [0-139] level: 2, target: 39.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 5 of track 0 (frag:[24.941-29.934] > buffer:[0.000-29.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 6 cc: 0 of [0-139] track: 0, target: 29.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 8 of level 2
 [log] > [audio-stream-controller]: Loaded fragment 6 of level 0
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 8 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 6 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 6 of track 0 (frag:[29.934-34.949] > buffer:[0.000-34.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 7 cc: 0 of [0-139] track: 0, target: 34.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 7 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 7 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 7 of track 0 (frag:[34.949-39.941] > buffer:[0.000-39.941])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 8 cc: 0 of [0-139] track: 0, target: 39.941
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 8 of level 0
 [log] > [stream-controller]: Buffered main sn: 8 of level 2 (frag:[39.933-44.933] > buffer:[0.000-44.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 9 cc: 0 of [0-139] level: 2, target: 44.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 8 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 8 of track 0 (frag:[39.941-44.934] > buffer:[0.000-44.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 9 cc: 0 of [0-139] track: 0, target: 44.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 9 of level 2
 [log] > [audio-stream-controller]: Loaded fragment 9 of level 0
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 9 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 9 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 9 of track 0 (frag:[44.934-49.949] > buffer:[0.000-49.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 9 of level 2 (frag:[44.933-49.933] > buffer:[0.000-49.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 10 cc: 0 of [0-139] level: 2, target: 49.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 10 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 10 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 10 of level 2 (frag:[49.933-54.933] > buffer:[0.000-54.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 11 cc: 0 of [0-139] level: 2, target: 54.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 11 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 11 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 11 of level 2 (frag:[54.933-59.933] > buffer:[0.000-59.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 12 cc: 0 of [0-139] level: 2, target: 59.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 10 cc: 0 of [0-139] track: 0, target: 49.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 12 of level 2
 [log] > [audio-stream-controller]: Loaded fragment 10 of level 0
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 12 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 10 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 10 of track 0 (frag:[49.949-54.941] > buffer:[0.000-54.941])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 11 cc: 0 of [0-139] track: 0, target: 54.941
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 11 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 11 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 11 of track 0 (frag:[54.941-59.934] > buffer:[0.000-59.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 12 cc: 0 of [0-139] track: 0, target: 59.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 12 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 12 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 12 of level 2 (frag:[59.933-64.933] > buffer:[0.000-64.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 13 cc: 0 of [0-139] level: 2, target: 64.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Buffered audio sn: 12 of track 0 (frag:[59.934-64.949] > buffer:[0.000-64.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 13 cc: 0 of [0-139] track: 0, target: 64.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 13 of level 2
 [log] > [audio-stream-controller]: Loaded fragment 13 of level 0
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 13 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 13 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 13 of track 0 (frag:[64.949-69.941] > buffer:[0.000-69.941])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 13 of level 2 (frag:[64.933-69.933] > buffer:[0.000-69.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 14 cc: 0 of [0-139] level: 2, target: 69.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 14 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 14 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 14 of level 2 (frag:[69.933-74.933] > buffer:[0.000-74.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 15 cc: 0 of [0-139] level: 2, target: 74.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 15 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 15 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 15 of level 2 (frag:[74.933-79.933] > buffer:[0.000-79.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 16 cc: 0 of [0-139] level: 2, target: 79.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 14 cc: 0 of [0-139] track: 0, target: 69.941
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 16 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 16 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 14 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 14 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 14 of track 0 (frag:[69.941-74.934] > buffer:[0.000-74.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 15 cc: 0 of [0-139] track: 0, target: 74.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 15 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 15 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 15 of track 0 (frag:[74.934-79.949] > buffer:[0.000-79.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 16 cc: 0 of [0-139] track: 0, target: 79.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Buffered main sn: 16 of level 2 (frag:[79.933-84.933] > buffer:[0.000-84.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 17 cc: 0 of [0-139] level: 2, target: 84.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 16 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 16 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Loaded fragment 17 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 17 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 16 of track 0 (frag:[79.949-84.942] > buffer:[0.000-84.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 17 cc: 0 of [0-139] track: 0, target: 84.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 17 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 17 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 17 of track 0 (frag:[84.942-89.934] > buffer:[0.000-89.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 17 of level 2 (frag:[84.933-89.933] > buffer:[0.000-89.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 18 cc: 0 of [0-139] level: 2, target: 89.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 18 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 18 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 18 of level 2 (frag:[89.933-94.933] > buffer:[0.000-94.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 19 cc: 0 of [0-139] level: 2, target: 94.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 19 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 19 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 19 of level 2 (frag:[94.933-99.933] > buffer:[0.000-99.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 20 cc: 0 of [0-139] level: 2, target: 99.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 18 cc: 0 of [0-139] track: 0, target: 89.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 20 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 20 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 18 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 18 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 18 of track 0 (frag:[89.934-94.949] > buffer:[0.000-94.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 19 cc: 0 of [0-139] track: 0, target: 94.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 19 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 19 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 19 of track 0 (frag:[94.949-99.942] > buffer:[0.000-99.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 20 cc: 0 of [0-139] track: 0, target: 99.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 20 of level 0
 [log] > [stream-controller]: Buffered main sn: 20 of level 2 (frag:[99.933-104.933] > buffer:[0.000-104.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 21 cc: 0 of [0-139] level: 2, target: 104.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 20 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 20 of track 0 (frag:[99.942-104.934] > buffer:[0.000-104.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 21 cc: 0 of [0-139] track: 0, target: 104.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 21 of level 2
 [log] > [audio-stream-controller]: Loaded fragment 21 of level 0
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 21 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 21 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 21 of track 0 (frag:[104.934-109.949] > buffer:[0.000-109.949])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 21 of level 2 (frag:[104.933-109.933] > buffer:[0.000-109.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 22 cc: 0 of [0-139] level: 2, target: 109.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 22 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 22 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 22 of level 2 (frag:[109.933-114.933] > buffer:[0.000-114.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 23 cc: 0 of [0-139] level: 2, target: 114.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 23 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 23 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 23 of level 2 (frag:[114.933-119.933] > buffer:[0.000-119.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 24 cc: 0 of [0-139] level: 2, target: 119.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 22 cc: 0 of [0-139] track: 0, target: 109.949
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 24 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 24 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 22 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 22 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 22 of track 0 (frag:[109.949-114.942] > buffer:[0.000-114.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 23 cc: 0 of [0-139] track: 0, target: 114.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 23 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 23 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 23 of track 0 (frag:[114.942-119.934] > buffer:[0.000-119.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 24 cc: 0 of [0-139] track: 0, target: 119.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 24 of level 0
 [log] > [stream-controller]: Buffered main sn: 24 of level 2 (frag:[119.933-124.933] > buffer:[0.000-124.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 25 cc: 0 of [0-139] level: 2, target: 124.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 24 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 24 of track 0 (frag:[119.934-124.950] > buffer:[0.000-124.950])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 25 cc: 0 of [0-139] track: 0, target: 124.95
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 25 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 25 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 25 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 25 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 25 of track 0 (frag:[124.950-129.942] > buffer:[0.000-129.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 25 of level 2 (frag:[124.933-129.933] > buffer:[0.000-129.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 26 cc: 0 of [0-139] level: 2, target: 129.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 26 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 26 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 26 of level 2 (frag:[129.933-134.933] > buffer:[0.000-134.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 27 cc: 0 of [0-139] level: 2, target: 134.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 26 cc: 0 of [0-139] track: 0, target: 129.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 27 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 27 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 26 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 26 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 26 of track 0 (frag:[129.942-134.934] > buffer:[0.000-134.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 27 cc: 0 of [0-139] track: 0, target: 134.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 27 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 27 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 27 of level 2 (frag:[134.933-139.933] > buffer:[0.000-139.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 28 cc: 0 of [0-139] level: 2, target: 139.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Buffered audio sn: 27 of track 0 (frag:[134.934-139.950] > buffer:[0.000-139.950])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 28 cc: 0 of [0-139] track: 0, target: 139.95
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 28 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 28 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 28 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 28 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 28 of track 0 (frag:[139.950-144.942] > buffer:[0.000-144.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 28 of level 2 (frag:[139.933-144.933] > buffer:[0.000-144.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 29 cc: 0 of [0-139] level: 2, target: 144.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 29 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 29 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 29 of level 2 (frag:[144.933-149.933] > buffer:[0.000-149.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 30 cc: 0 of [0-139] level: 2, target: 149.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 30 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 30 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 30 of level 2 (frag:[149.933-154.933] > buffer:[0.000-154.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 31 cc: 0 of [0-139] level: 2, target: 154.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 31 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 31 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 31 of level 2 (frag:[154.933-159.933] > buffer:[0.000-159.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 32 cc: 0 of [0-139] level: 2, target: 159.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loading fragment 29 cc: 0 of [0-139] track: 0, target: 144.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 32 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 32 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 29 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 29 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 29 of track 0 (frag:[144.942-149.934] > buffer:[0.000-149.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 30 cc: 0 of [0-139] track: 0, target: 149.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 30 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 30 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 30 of track 0 (frag:[149.934-154.950] > buffer:[0.000-154.950])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 31 cc: 0 of [0-139] track: 0, target: 154.95
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 31 of level 0
 [log] > [stream-controller]: Buffered main sn: 32 of level 2 (frag:[159.933-164.933] > buffer:[0.000-164.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 33 cc: 0 of [0-139] level: 2, target: 164.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 31 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 31 of track 0 (frag:[154.950-159.942] > buffer:[0.000-159.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 32 cc: 0 of [0-139] track: 0, target: 159.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 33 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 33 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loaded fragment 32 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 32 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 32 of track 0 (frag:[159.942-164.934] > buffer:[0.000-164.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 33 cc: 0 of [0-139] track: 0, target: 164.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 33 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 33 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 33 of level 2 (frag:[164.933-169.933] > buffer:[0.000-169.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 34 cc: 0 of [0-139] level: 2, target: 169.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Buffered audio sn: 33 of track 0 (frag:[164.934-169.950] > buffer:[0.000-169.950])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 34 cc: 0 of [0-139] track: 0, target: 169.95
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 34 of level 0
 [log] > [stream-controller]: Loaded fragment 34 of level 2
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 34 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 34 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 34 of track 0 (frag:[169.950-174.942] > buffer:[0.000-174.942])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Buffered main sn: 34 of level 2 (frag:[169.933-174.933] > buffer:[0.000-174.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 35 cc: 0 of [0-139] level: 2, target: 174.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 35 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 35 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 35 of level 2 (frag:[174.933-179.933] > buffer:[0.000-179.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 36 cc: 0 of [0-139] level: 2, target: 179.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 36 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 36 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 36 of level 2 (frag:[179.933-184.933] > buffer:[0.000-184.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 37 cc: 0 of [0-139] level: 2, target: 184.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 37 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 37 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 37 of level 2 (frag:[184.933-189.933] > buffer:[0.000-189.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 38 cc: 0 of [0-139] level: 2, target: 189.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 38 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 38 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 38 of level 2 (frag:[189.933-194.933] > buffer:[0.000-194.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 39 cc: 0 of [0-139] level: 2, target: 194.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 39 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 39 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 39 of level 2 (frag:[194.933-199.933] > buffer:[0.000-199.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 40 cc: 0 of [0-139] level: 2, target: 199.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 40 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 40 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Buffered main sn: 40 of level 2 (frag:[199.933-204.933] > buffer:[0.000-204.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 41 cc: 0 of [0-139] level: 2, target: 204.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Loaded fragment 41 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 41 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Loading fragment 35 cc: 0 of [0-139] track: 0, target: 174.942
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Buffered main sn: 41 of level 2 (frag:[204.933-209.933] > buffer:[0.000-209.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 42 cc: 0 of [0-139] level: 2, target: 209.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 35 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 35 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Loaded fragment 42 of level 2
 [log] > [stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 42 of level 2
 [log] > [stream-controller]: PARSING->PARSED
 [log] > [audio-stream-controller]: Buffered audio sn: 35 of track 0 (frag:[174.942-179.934] > buffer:[0.000-179.934])
 [log] > [audio-stream-controller]: PARSED->IDLE
 [log] > [audio-stream-controller]: Loading fragment 36 cc: 0 of [0-139] track: 0, target: 179.934
 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
 [log] > [stream-controller]: Buffered main sn: 42 of level 2 (frag:[209.933-214.933] > buffer:[0.000-214.950])
 [log] > [stream-controller]: PARSED->IDLE
 [log] > [stream-controller]: Loading fragment 43 cc: 0 of [0-139] level: 2, target: 214.95
 [log] > [stream-controller]: IDLE->FRAG_LOADING
 [log] > [audio-stream-controller]: Loaded fragment 36 of level 0
 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
 [log] > [transmuxer.ts]: Flushed fragment 36 of level 0
 [log] > [audio-stream-controller]: PARSING->PARSED
 [log] > [stream-controller]: Loaded fragment 43 of level 2
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 36 of track 0 (frag:[179.934-184.950] > buffer:[0.000-184.950])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 37 cc: 0 of [0-139] track: 0, target: 184.95
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1801 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 43 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 37 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 37 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 37 of track 0 (frag:[184.950-189.942] > buffer:[0.000-189.942])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 38 cc: 0 of [0-139] track: 0, target: 189.942
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 38 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 38 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [stream-controller]: Buffered main sn: 43 of level 2 (frag:[214.933-219.933] > buffer:[0.000-219.950])
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [stream-controller]: Loading fragment 44 cc: 0 of [0-139] level: 2, target: 219.95
base-stream-controller.ts:1801 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 38 of track 0 (frag:[189.942-194.935] > buffer:[0.000-194.935])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 39 cc: 0 of [0-139] track: 0, target: 194.935
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 44 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 44 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 39 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 39 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 39 of track 0 (frag:[194.935-199.950] > buffer:[0.000-199.950])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 40 cc: 0 of [0-139] track: 0, target: 199.95
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 40 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 40 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 40 of track 0 (frag:[199.950-204.942] > buffer:[0.000-204.942])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 41 cc: 0 of [0-139] track: 0, target: 204.942
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 41 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 41 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [stream-controller]: Buffered main sn: 44 of level 2 (frag:[219.933-224.933] > buffer:[0.000-224.950])
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [stream-controller]: Loading fragment 45 cc: 0 of [0-139] level: 2, target: 224.95
base-stream-controller.ts:1801 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 41 of track 0 (frag:[204.942-209.935] > buffer:[0.000-209.935])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 42 cc: 0 of [0-139] track: 0, target: 209.935
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 45 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 45 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 42 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 42 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 42 of track 0 (frag:[209.935-214.950] > buffer:[0.000-214.950])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 43 cc: 0 of [0-139] track: 0, target: 214.95
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 43 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 43 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 43 of track 0 (frag:[214.950-219.942] > buffer:[0.000-219.942])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 44 cc: 0 of [0-139] track: 0, target: 219.942
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 44 of level 0
base-stream-controller.ts:570 [log] > [stream-controller]: Buffered main sn: 45 of level 2 (frag:[224.933-229.933] > buffer:[0.000-229.950])
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [stream-controller]: Loading fragment 46 cc: 0 of [0-139] level: 2, target: 229.95
base-stream-controller.ts:1801 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 44 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 44 of track 0 (frag:[219.942-224.935] > buffer:[0.000-224.935])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 45 cc: 0 of [0-139] track: 0, target: 224.935
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 46 of level 2
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 45 of level 0
base-stream-controller.ts:1801 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 46 of level 2
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 45 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 45 of track 0 (frag:[224.935-229.950] > buffer:[0.000-229.950])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 46 cc: 0 of [0-139] track: 0, target: 229.95
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:570 [log] > [stream-controller]: Buffered main sn: 46 of level 2 (frag:[229.933-234.933] > buffer:[0.000-234.950])
base-stream-controller.ts:1801 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 46 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 46 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 46 of track 0 (frag:[229.950-234.942] > buffer:[0.000-234.942])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:758 [log] > [audio-stream-controller]: Loading fragment 47 cc: 0 of [0-139] track: 0, target: 234.942
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [audio-stream-controller]: Loaded fragment 47 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:394 [log] > [transmuxer.ts]: Flushed fragment 47 of level 0
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:570 [log] > [audio-stream-controller]: Buffered audio sn: 47 of track 0 (frag:[234.942-239.935] > buffer:[0.000-239.935])
base-stream-controller.ts:1801 [log] > [audio-stream-controller]: PARSED->IDLE

Chrome media internals output

No response

luwes avatar Oct 15 '24 23:10 luwes

This is a major issue for us since users tend to skip around in a video to see different highlights, etc. Thanks for looking into this issue.

pbv-public avatar Oct 17 '24 23:10 pbv-public

I tested it on Safari and Firefox and from brief testing it didn't seem to be an issue on those browsers.

Is this specific to Chrome MSE playback?

If you perform a micro-seek (currentTime += 0.0001) at the right time (after playback resumes but all video frames are dropped until the next key frame) does that correct the issue? (Seeks flush the pipeline and is also necessary when crossing small video gaps to prevent stalls one second after entering a new video buffered range.)

Sounds related to the LL-HLS issue we have with video "freezing" when appends are performed over the play-head.

  • #3596

robwalch avatar Oct 17 '24 23:10 robwalch

Yes, it looked like a Chrome only thing in the tests I did.

Thanks, we can give that a try!

luwes avatar Oct 24 '24 22:10 luwes

After reproducing this in Chrome 130 on mac, simply issuing another seek won't do the trick. Only one buffered TimeRange is reported so there is no signal that the decoding and rendering pipeline will stall or stop rendering at any point.

You should report this issue to Chrome and as a workaround, flush the forward buffer when seeking back into an unbuffered range.

To make things easier we can look into making frontBufferFlushThreshold remove any forward buffered range past the threshold get removed on seeking.

robwalch avatar Oct 24 '24 23:10 robwalch

@robwalch lol was digging through some old notes when I saw this and thought it sounded an awful lot like... #3596 (which I had saved). I'm fairly confident this is related as well.

Other relevant links:

  1. Code Frame Processing https://www.w3.org/TR/media-source/#sourcebuffer-coded-frame-processing (particularly step 9 and the note. This effectively says Chrome is spec compliant with its behavior, so unlikely they'll change or treat it as a bug, though it would clearly be an improvement)
  2. Commit to Chromium with some relevant changes: https://github.com/chromium/chromium/commit/ba8d79c02368809cab3f17844e93e6ef2cc6b639

In theory, hls.js could try to keep track of segment boundaries in the SourceBuffer's TimeRanges to better identify if/when this scenario would occur, though I suspect that would be non-trivial.

cjpillsbury avatar Oct 25 '24 15:10 cjpillsbury

So this asset contains overlapping samples?

robwalch avatar Oct 25 '24 15:10 robwalch

It shouldn't (though I haven't confirmed). What I suspect is happening is the back buffer flushing is lopping off an IDR frame but not the whole GOP and we end up in edge cases from that with the seeking + fetching/buffering.

cjpillsbury avatar Oct 25 '24 15:10 cjpillsbury

HLS.js’s back buffer flushing doesn't operate on media less than a target durations behind the playhead. It is completely diabled by default and only set to 90 seconds on the demo page.

robwalch avatar Oct 25 '24 16:10 robwalch

If frames are being removed that should be reflected in the buffered ranges. I don't see how this is not a bug in Chrome.

particularly step 9 and the note

We’re not using append window

robwalch avatar Oct 25 '24 16:10 robwalch

I should add that I reproduced the issue with default settings: No HLS.js back buffer removal whatsoever. If HLS.js was performing back buffer removal, I would expect it to re-buffer any fragments that overlap with the flushed range.

robwalch avatar Oct 25 '24 20:10 robwalch

@luwes and @cjpillsbury,

Were you able to workaround or resolve this issue? It's not a bug in hls.js as far as I can tell. HLS.js can add an option to flush the front buffer when seeking back. Maybe this should be the behavior when frontBufferFlushThreshold is set to 0. This is not the result of any muxing or timeshifting and only avoided in other players by flushing the buffer when seeking back as far as I can tell.

robwalch avatar Jan 28 '25 05:01 robwalch

Is this the same issue? https://github.com/video-dev/hls.js/issues/6374

We're seeing this too - haven't yet tried implementing the flush workaround, but based on the comments in that other issue it seems to work. Having a built-in option for this would be great.

luryus avatar Jan 28 '25 05:01 luryus

Don't want to speak for @luwes who was digging into this, but I think we're just accepting this as status quo for the time being?

cjpillsbury avatar Jan 28 '25 16:01 cjpillsbury

Yes, @cjpillsbury is right. We didn't implement a workaround yet.

Flushing the buffer seems like a good plan but I imagine we'd have to take care of caching the segment responses then so no new requests are made?

luwes avatar Jan 28 '25 17:01 luwes

Flushing the buffer seems like a good plan but I imagine we'd have to take care of caching the segment responses then so no new requests are made?

Unless segment caching is handled by the browser, they will be reloaded. HLS.js doesn't cache segment data that has been appended to a source buffer. We want to avoid OOM errors on low end devices and user-agents with strict memory limits.

robwalch avatar Jan 28 '25 18:01 robwalch

This issue duplicates #6374 (however steps to reproduce in this issue work every time, while steps and "also this" comments in that issue are not easily reproducible).

The issue here (as opposed to similar issues like #5631) is that when seeking back and appending earlier segments that abut with previously appended segment, the buffered time range is contiguous, but video playback stalls at the abutting time, likely due to some overlap in sample or other issue in decoding that hls.js is not responsible for.

robwalch avatar Jan 28 '25 19:01 robwalch

The window to land this in v1.6.0 has passed.

This will be revisited with this group of issues:

https://github.com/video-dev/hls.js/issues?q=state%3Aopen%20label%3A%22browser%3A%20Chrome%22

Some work has been done to detect missed frames (not dropped because they were appended late): https://github.com/video-dev/hls.js/compare/v1.5.0...feature/video-buffer-starved

This issue and duplicate #6374 are caused by abutting appends in reverse order (append 10-20 then append 0-10: video stops rendering at 10 until next GoP).

robwalch avatar Feb 05 '25 17:02 robwalch

If you are interested in code that examines mp4 content prior to append (it may be relevant to detecting this behavior) here you go:

https://github.com/video-dev/hls.js/pull/6218/commits/f935c68f81842fdee3db808f31dd0e9bcfdaa250

I don't think the segments are missing an IDR at the start in this case, but other sample information that could be extracted as demonstrated in the change above may be useful in detecting overlap or some other condition that leads to Chrome not rendering video after the abutting append (splice) point.

robwalch avatar Feb 05 '25 17:02 robwalch