Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Seeking performance issues in Safari (visible in hls.js demo w/ Buffer stalled error) #4884

Closed
5 tasks done
cmugla opened this issue Sep 7, 2022 · 4 comments · Fixed by #6524
Closed
5 tasks done
Labels
browser: Safari Bug gap-controller Verify Fixed An unreleased bug fix has been merged and should be verified before closing.
Milestone

Comments

@cmugla
Copy link
Contributor

cmugla commented Sep 7, 2022

What version of Hls.js are you using?

v1.2.1 (also tested on older versions: 1.0.0 and 0.14.0)

What browser (including version) are you using?

Safari Version 15.1 (17612.2.9.1.20)

What OS (including version) are you using?

macOS Version 12.0.1 (21A559)

Test stream

https://hls-js.netlify.app/demo/?src=https%3A%2F%2Ftest-streams.mux.dev%2Fx36xhzz%2Fx36xhzz.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Configuration

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

Additional player setup steps

No response

Checklist

Steps to reproduce

  1. Open demo in Safari
  2. Try seeking around
  3. Try play/pause

Expected behaviour

  • Seeks to appropriate frame
  • plays/pauses as expected

What actually happened?

  • A poor performance and sometimes end up in a stalled state where the whole page crashes
  • seeing "Buffer stalled error"'s

Screen Shot 2022-09-07 at 10 29 19 AM

Console output

[Log] Using Hls.js config: – {debug: true, enableWorker: true, lowLatencyMode: true, …} (hls-demo.js, line 1803)
{debug: true, enableWorker: true, lowLatencyMode: true, backBufferLength: 90}Object
[Log] [log] > (hls.js, line 26276)
[Log] [log] >"stopLoad" (hls.js, line 17797)
[Log] [log] >"loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8" (hls.js, line 17760)
[Log] [log] >"[stream-controller]:""Trigger BUFFER_RESET" (hls.js, line 10075)
[Log] [log] >"attachMedia" (hls.js, line 17731)
[Log] [log] >"[buffer-controller]: Media source opened" (hls.js, line 4208)
[Log] [log] >"[subtitle-stream-controller]:""STOPPED->IDLE" (hls.js, line 4132)
[Log] [log] >"[level-controller]:""manifest loaded, 5 level(s) found, first bitrate: 2149280" (hls.js, line 8595)
[Log] [log] >"1 bufferCodec event(s) expected" (hls.js, line 4305)
[Log] [log] >"startLoad(-1)" (hls.js, line 17786)
[Log] [log] >"[level-controller]:""switching to level 3 from -1" (hls.js, line 8953)
[Log] [log] >"[level-controller]:""Attempt loading level index 3 with URL-id 0 https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8" (hls.js, line 8845)
[Log] [log] >"[stream-controller]:""STOPPED->IDLE" (hls.js, line 4132)
[Log] [log] >"[subtitle-stream-controller]:""IDLE->STOPPED" (hls.js, line 4132)
[Log] [log] >"[subtitle-stream-controller]:""STOPPED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Level 3 loaded [0,63], cc [0, 0] duration:634.584" (hls.js, line 10139)
[Log] [log] >"[buffer-controller]: Updating Media Source duration to 634.584" (hls.js, line 4808)
[Log] [log] >"[stream-controller]:""Loading fragment 0 cc: 0 of [0-63] level: 3, target: 0" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"demuxing in webworker" (hls.js, line 15218)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 3 id: 1↵        discontinuity: true↵        trackSwitch…" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 3 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
        initSegmentChange: true"
[Log] [log] >"[stream-controller]:""Loaded fragment 0 of level 3" (hls.js, line 3260)
[Log] [log] > (0c4da471-9cb7-48a2-b6d6-6cadc85557f6, line 632)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.js, line 15414)
[Log] [log] >"manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:4" (hls.js, line 15414)
[Log] [log] >"parsed codec:mp4a.40.5, rate:44100, channels:2" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]" (hls.js, line 10733)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.64001f/avc1.64001f]" (hls.js, line 10739)
[Log] [log] >"[buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)" (hls.js, line 4879)
[Log] [log] >"[buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.64001f)" (hls.js, line 4879)
[Log] [log] >"[audio-stream-controller]:""InitPTS for cc: 0 found from main: 900909" (hls.js, line 1652)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 0 of level 3" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 0 of level 3 [0.023,10.008]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[level-controller]:""switching to level 4 from 3" (hls.js, line 8953)
[Log] [log] >"[level-controller]:""Attempt loading level index 4 with URL-id 0 https://test-streams.mux.dev/x36xhzz/url_8/193039199_mp4_h264_aac_fhd_7.m3u8" (hls.js, line 8845)
[Log] [log] >"[stream-controller]:""IDLE->WAITING_LEVEL" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Level 4 loaded [0,63], cc [0, 0] duration:634.567" (hls.js, line 10139)
[Log] [log] >"[stream-controller]:""WAITING_LEVEL->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 1 cc: 0 of [0-63] level: 4, target: 10.008" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 4 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 4 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 10
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 1 of level 4" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.js, line 15414)
[Log] [log] >"manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:4" (hls.js, line 15414)
[Log] [log] >"parsed codec:mp4a.40.5, rate:44100, channels:2" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]" (hls.js, line 10733)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640028/avc1.640028]" (hls.js, line 10739)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 1 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 1 of level 4 [0.023,19.992]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 2 cc: 0 of [0-63] level: 4, target: 19.992" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 2 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 2 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 2 of level 4 [0.023,30.000]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 3 cc: 0 of [0-63] level: 4, target: 30" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 3 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 3 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 3 of level 4 [0.023,40.008]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 4 cc: 0 of [0-63] level: 4, target: 40.008" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 4 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 4 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 4 of level 4 [0.023,49.993]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 5 cc: 0 of [0-63] level: 4, target: 49.993" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 5 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 5 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 5 of level 4 [0.023,60.000]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 6 cc: 0 of [0-63] level: 4, target: 60" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 6 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 6 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 6 of level 4 [0.023,70.008]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 7 cc: 0 of [0-63] level: 4, target: 70.008" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 7 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 7 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 7 of level 4 [0.023,79.946]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 9 cc: 0 of [0-63] level: 4, target: 99.63" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 99.630, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 99.630, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 99.630, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Media seeked to 99.630" (hls.js, line 10066)
[Log] [log] >"[stream-controller]:""media seeking to 99.630, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 99.630, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 99.630, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 9 p: -1 level: 4 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 9 p: -1 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 90.01330385488237
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 9 of level 4" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 9 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 9 of level 4 [0.023,79.946][90.023,100.008]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 10 cc: 0 of [0-63] level: 4, target: 100.008" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 191.010, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 10 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 191.010, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 191.010, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 19 cc: 0 of [0-63] level: 4, target: 191.01" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Warning] [warn] >"frag loader destroy or aborted, disarm abandonRules" (hls.js, line 1238)
[Log] [log] >"[stream-controller]:""media seeking to 191.010, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 191.010, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 191.010, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 285.563, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 19 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 285.563, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 285.563, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 28 cc: 0 of [0-63] level: 4, target: 285.563" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 285.563, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 285.563, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 285.563, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 350.290, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 28 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 350.290, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 350.290, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 35 cc: 0 of [0-63] level: 4, target: 350.29" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Warning] [warn] >"frag loader destroy or aborted, disarm abandonRules" (hls.js, line 1238)
[Log] [log] >"[stream-controller]:""media seeking to 350.290, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 350.290, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 350.290, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 444.843, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 35 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 444.843, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 444.843, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 44 cc: 0 of [0-63] level: 4, target: 444.843" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 445.478, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 445.478, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 445.478, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 446.113, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 446.113, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 446.113, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 451.189, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 44 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 451.189, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 451.189, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 45 cc: 0 of [0-63] level: 4, target: 451.189" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Warning] [warn] >"frag loader destroy or aborted, disarm abandonRules" (hls.js, line 1238)
[Log] [log] >"[stream-controller]:""media seeking to 460.073, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 460.073, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 460.073, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""media seeking to 470.227, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 45 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 470.227, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 470.227, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 47 cc: 0 of [0-63] level: 4, target: 470.227" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 484.188, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 47 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 484.188, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 484.188, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 48 cc: 0 of [0-63] level: 4, target: 484.188" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 494.341, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 48 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 494.341, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 494.341, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 49 cc: 0 of [0-63] level: 4, target: 494.341" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 505.129, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 49 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 505.129, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 505.129, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 50 cc: 0 of [0-63] level: 4, target: 505.129" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 515.282, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 50 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 515.282, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 515.282, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 51 cc: 0 of [0-63] level: 4, target: 515.282" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 522.897, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 51 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 522.897, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 522.897, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 52 cc: 0 of [0-63] level: 4, target: 522.897" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 529.243, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 529.243, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 529.243, state: IDLE" (hls.js, line 3135)
[Warning] [warn] >"frag loader destroy or aborted, disarm abandonRules" (hls.js, line 1238)
[Log] [log] >"[stream-controller]:""media seeking to 533.051, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""seeking outside of buffer while fragment load in progress, cancel fragment load" (hls.js, line 3148)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->IDLE" (hls.js, line 4132)
[Warning] [warn] >"[stream-controller]:""Fragment 52 of level 4 was aborted" (hls.js, line 3967)
[Log] [log] >"[audio-stream-controller]:""media seeking to 533.051, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 533.051, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 53 cc: 0 of [0-63] level: 4, target: 533.051" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 53 p: -1 level: 4 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 53 p: -1 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 530.0083448979614
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 53 of level 4" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 53 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""media seeking to 231.623, state: PARSED" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[audio-stream-controller]:""media seeking to 231.623, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 231.623, state: IDLE" (hls.js, line 3135)
[Log] [log] >"[stream-controller]:""Loading fragment 23 cc: 0 of [0-63] level: 4, target: 231.623" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 23 p: -1 level: 4 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 23 p: -1 level: 4 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 229.99546666666663
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 23 of level 4" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""media seeking to 231.623, state: FRAG_LOADING" (hls.js, line 3135)
[Log] [log] >"[audio-stream-controller]:""media seeking to 231.623, state: STOPPED" (hls.js, line 3135)
[Log] [log] >"[subtitle-stream-controller]:""media seeking to 231.623, state: IDLE" (hls.js, line 3135)
[Warning] [warn] >"[stream-controller]:""Fragment 53 of level 4 finished buffering, but was aborted. state: FRAG_LOADING" (hls.js, line 10335)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 23 of level 4" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 23 of level 4 [0.023,79.946][90.023,100.008][230.023,240.001][530.023,540.003]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[level-controller]:""switching to level 2 from 4" (hls.js, line 8953)
[Log] [log] >"[level-controller]:""Attempt loading level index 2 with URL-id 0 https://test-streams.mux.dev/x36xhzz/url_6/193039199_mp4_h264_aac_hq_7.m3u8" (hls.js, line 8845)
[Log] [log] >"[stream-controller]:""IDLE->WAITING_LEVEL" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Level 2 loaded [0,63], cc [0, 0] duration:634.6" (hls.js, line 10139)
[Log] [log] >"[stream-controller]:""WAITING_LEVEL->IDLE" (hls.js, line 4132)
[Log] [log] >"[level-controller]:""switching to level 1 from 2" (hls.js, line 8953)
[Log] [log] >"[level-controller]:""Attempt loading level index 1 with URL-id 0 https://test-streams.mux.dev/x36xhzz/url_4/193039199_mp4_h264_aac_7.m3u8" (hls.js, line 8845)
[Log] [log] >"[stream-controller]:""IDLE->WAITING_LEVEL" (hls.js, line 4132)
[Log] [log] >"[buffer-controller]: Updating Media Source duration to 634.600" (hls.js, line 4808)
[Log] [log] >"[stream-controller]:""Media seeked to 251.021" (hls.js, line 10066)
[Log] [log] >"[stream-controller]:""Level 1 loaded [0,63], cc [0, 0] duration:634.634" (hls.js, line 10139)
[Log] [log] >"[stream-controller]:""WAITING_LEVEL->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 25 cc: 0 of [0-63] level: 1, target: 251.021" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[buffer-controller]: Updating Media Source duration to 634.634" (hls.js, line 4808)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 25 p: -1 level: 1 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 25 p: -1 level: 1 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 250
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 25 of level 1" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.js, line 15414)
[Log] [log] >"manifest codec:mp4a.40.5, ADTS type:2, samplingIndex:7" (hls.js, line 15414)
[Log] [log] >"parsed codec:mp4a.40.5, rate:22050, channels:2" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.5/mp4a.40.5/mp4a.40.5]" (hls.js, line 10733)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.420016/avc1.42c016]" (hls.js, line 10739)
[Log] [log] >"[buffer-controller]: changing audio sourceBuffer type to audio/mp4;codecs=mp4a.40.5" (hls.js, line 4464)
[Log] [log] >"[buffer-controller]: switching codec mp4a.40.2 to mp4a.40.5" (hls.js, line 4427)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 25 of level 1" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Warning] [warn] >"Playback stalling at @251.020949736 due to low buffer ({\"len\":0,\"start\":251.020949736,\"end\":251.020949736,\"nextStart\":530.0232222222222})" (hls.js, line 7638)
[Warning] [warn] >"[playback-rate-controller]: Stall detected, adjusting target latency" (hls.js, line 8237)
[Warning] Error event: – {type: "mediaError", details: "bufferStalledError", fatal: false, …} (hls-demo.js, line 2148)
{type: "mediaError", details: "bufferStalledError", fatal: false, buffer: 0}Object
[Warning] [warn] >"playback not stuck anymore @253.825427110995, after 62256ms" (hls.js, line 7490)
[Log] [log] >"[stream-controller]:""Buffered main sn: 25 of level 1 [0.023,79.946][90.023,100.008][230.023,240.001][250.022,259.990][530.023,540.003]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[level-controller]:""switching to level 0 from 1" (hls.js, line 8953)
[Log] [log] >"[level-controller]:""Attempt loading level index 0 with URL-id 0 https://test-streams.mux.dev/x36xhzz/url_2/193039199_mp4_h264_aac_ld_7.m3u8" (hls.js, line 8845)
[Log] [log] >"[stream-controller]:""IDLE->WAITING_LEVEL" (hls.js, line 4132)
[Log] [log] >"[buffer-controller]: Removing [0,157.90390625] from the audio SourceBuffer" (hls.js, line 4967)
[Log] [log] >"[buffer-controller]: Removing [0,157.90390625] from the video SourceBuffer" (hls.js, line 4967)
[Log] [log] >"[stream-controller]:""Level 0 loaded [0,63], cc [0, 0] duration:634.634" (hls.js, line 10139)
[Log] [log] >"[stream-controller]:""WAITING_LEVEL->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 28 cc: 0 of [0-63] level: 0, target: 280" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 28 p: -1 level: 0 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 28 p: -1 level: 0 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 280
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 28 of level 0" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.js, line 15414)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.js, line 15414)
[Log] [log] >"manifest codec:mp4a.40.5, ADTS type:2, samplingIndex:7" (hls.js, line 15414)
[Log] [log] >"parsed codec:mp4a.40.5, rate:22050, channels:2" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.5/mp4a.40.5/mp4a.40.5]" (hls.js, line 10733)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.42000d/avc1.42c00d]" (hls.js, line 10739)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 28 of level 0" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Warning] [warn] >"Playback stalling at @279.899767949 due to low buffer ({\"len\":0,\"start\":279.899767949,\"end\":279.899767949,\"nextStart\":530.0232222222222})" (hls.js, line 7638)
[Warning] [warn] >"[playback-rate-controller]: Stall detected, adjusting target latency" (hls.js, line 8237)
[Warning] Error event: – {type: "mediaError", details: "bufferStalledError", fatal: false, …} (hls-demo.js, line 2148)
{type: "mediaError", details: "bufferStalledError", fatal: false, buffer: 0}Object
[Log] [log] >"[stream-controller]:""Buffered main sn: 28 of level 0 [230.023,240.001][250.022,259.990][280.023,289.990][530.023,540.003]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""SN 28 just loaded, load next one: 29" (hls.js, line 3836)
[Log] [log] >"[stream-controller]:""Loading fragment 29 cc: 0 of [0-63] level: 0, target: 289.99" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loaded fragment 29 of level 0" (hls.js, line 3260)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 29 of level 0" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 29 of level 0 [230.023,240.001][250.022,259.990][280.023,299.990][530.023,540.003]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Loading fragment 28 cc: 0 of [0-63] level: 0, target: 279.99" (hls.js, line 3443)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.js, line 4132)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 28 p: -1 level: 0 id: 1↵        discontinuity: false↵      …" (hls.js, line 15323)
"[transmuxer-interface, main]: Starting new transmux session for sn: 28 p: -1 level: 0 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 279.9899
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 28 of level 0" (hls.js, line 3260)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.js, line 4132)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 28 of level 0" (hls.js, line 15414)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.js, line 4132)
[Log] [log] >"[stream-controller]:""Buffered main sn: 28 of level 0 [230.023,240.001][250.022,259.990][280.023,299.990][530.023,540.003]" (hls.js, line 3374)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.js, line 4132)

Chrome media internals output

No response

@cmugla cmugla added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Sep 7, 2022
@robwalch
Copy link
Collaborator

robwalch commented Sep 8, 2022

A poor performance and sometimes end up in a stalled state where the whole page crashes

Please describe the crash in more detail in a way that can be reproduced.

seeing "Buffer stalled error"'s

This means that playback stalled. It is not a crash. It should not happen while waiting for seek to complete. This is likely due to delays in timeupdate events in Safari just before/after "seeked" completion, "canplay", and "playing" events.

Confirming this based on observed stalled events, but ignoring page crash details (cannot repro page crash).

@robwalch robwalch added Confirmed Bug report confirmed or reproduced. browser: Safari and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Sep 8, 2022
@cmugla
Copy link
Contributor Author

cmugla commented Sep 14, 2022

Please describe the crash in more detail in a way that can be reproduced.
Confirming this based on observed stalled events, but ignoring page crash details (cannot repro page crash).

Thanks for the quick reply - mainly was seeing the page become inoperable after the buffer stalled errors, where even something as simple as scrolling back to the top of the page would be heavily delayed and sluggish

@xuanyu-fp
Copy link

Hi there, would like to join in on this thread to share that I'm also experiencing these issues as well on Safari web v15.5 (with Mac OS v12.4).

On my first video (https://deploy-preview-4781--hls-js-dev.netlify.app/demo/?src=https://partnerships-ads-stg.foodpanda.com/fp_sg/partnerships/ads/postorder/869295a5-13d4-11ed-9886-724a14314b3e_144p.m3u8), the video does not even load and gets the bufferAppendError with "The video playback was aborted due to a corruption problem or because the video used features your browser did not support - Media failed to decode, cannot recover.".

On my second video (https://deploy-preview-4781--hls-js-dev.netlify.app/demo/?src=https%3A%2F%2Fpartnerships-ads-stg.foodpanda.com%2Ffp_sg%2Fpartnerships%2Fads%2Fpostorder%2F44eab265-1111-4c06-8eb9-36a091704428_1080p.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==), the video plays nicely until the end where it will get a bufferStalledError.

Tested the above videos using HLS v1.1.5 and v1.2.3.

Do you know the cause of these issues? Could it be the way we encoded them? Or do you know how we may solve them? Works fine on Firefox and Chrome, especially with HLS v1.2.3, so not sure why they would not work on Safari.

Thank you!

@robwalch
Copy link
Collaborator

This issue will be closed with #6524. It addresses fragment selection when seeking backward or while paused. You can try it here https://bugfix-backward-seek-near-en.hls-js-4zn.pages.dev/demo/

There may still be cases where the browser renders nearby buffer or in the case of Safari additional unwanted stalls reported. Please file a new issue if you see these in dev or upcoming releases.

@github-project-automation github-project-automation bot moved this from To do to Done in HLS.js Performance Jul 1, 2024
@robwalch robwalch added the Verify Fixed An unreleased bug fix has been merged and should be verified before closing. label Jul 1, 2024
@robwalch robwalch added this to the 1.6.0 milestone Jul 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
browser: Safari Bug gap-controller Verify Fixed An unreleased bug fix has been merged and should be verified before closing.
Projects
Development

Successfully merging a pull request may close this issue.

3 participants