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

Audio buffer was stalled at first segment #3741

Closed
5 tasks done
os2man2 opened this issue Apr 8, 2021 · 1 comment · Fixed by #3748
Closed
5 tasks done

Audio buffer was stalled at first segment #3741

os2man2 opened this issue Apr 8, 2021 · 1 comment · Fixed by #3748

Comments

@os2man2
Copy link

os2man2 commented Apr 8, 2021

What version of Hls.js are you using?

1.0.0

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

Windows Chrome /Mac OS Chrome/Windows Edge

Test stream:

https://os2man2.github.io/sample_hls_fmp4/master.m3u8

https://hls-js.netlify.app/demo/?src=https%3A%2F%2Fos2man2.github.io%2Fsample_hls_fmp4%2Fmaster.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Configuration:

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

Checklist

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

Steps to reproduce

  1. See playing demo stream
  2. Problem was happen every times.

Expected behavior

Play video without stop stream

Actual behavior

Stop stream and cannot continue to play it any more.
Because audio buffer was stalled at first segment
when changing audio group from l0 to l3.

Console output

Using Hls.js config: Object
logger.ts:74 [log] >
hls.ts:354 [log] > stopLoad
hls.ts:330 [log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
stream-controller.ts:540 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:302 [log] > attachMedia
buffer-controller.ts:736 [log] > [buffer-controller]: Media source opened
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
level-controller.ts:171 [log] > [level-controller]: manifest loaded, 5 level(s) found, first bitrate: 2149280
buffer-controller.ts:129 [log] > 1 bufferCodec event(s) expected
hls.ts:344 [log] > startLoad(-1)
level-controller.ts:250 [log] > [level-controller]: switching to level 3 from -1
level-controller.ts:523 [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
base-stream-controller.ts:1265 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:604 [log] > [stream-controller]: Level 3 loaded [0,63], cc [0, 0] duration:634.584
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 634.584
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-63] level: 3, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:66 [log] > demuxing in webworker
transmuxer-interface.ts:180 [log] > [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
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 0 of level 3
​ [log] >
​ [log] > [mp4-remuxer]: ISGenerated flag reset
​ [log] > [mp4-remuxer]: initPTS & initDTS reset
​ [log] > manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:4
​ [log] > parsed codec:mp4a.40.5, rate:44100, channels:2
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1207 [log] > [stream-controller]: Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.64001f/avc1.64001f]
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.64001f)
audio-stream-controller.ts:113 [log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 900909
​ [log] > [transmuxer.ts]: Flushed fragment 0 of level 3
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 0 of level 3 [0.023,10.008]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 4 from 3
level-controller.ts:523 [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
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->WAITING_LEVEL
stream-controller.ts:604 [log] > [stream-controller]: Level 4 loaded [0,63], cc [0, 0] duration:634.567
base-stream-controller.ts:1265 [log] > [stream-controller]: WAITING_LEVEL->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 1 cc: 0 of [0-63] level: 4, target: 10.008
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:180 [log] > [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
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 1 of level 4
​ [log] > [mp4-remuxer]: ISGenerated flag reset
​ [log] > [mp4-remuxer]: reset next timestamp
​ [log] > [mp4-remuxer]: ISGenerated flag reset
​ [log] > [mp4-remuxer]: initPTS & initDTS reset
​ [log] > manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:4
​ [log] > parsed codec:mp4a.40.5, rate:44100, channels:2
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1207 [log] > [stream-controller]: Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640028/avc1.640028]
​ [log] > [transmuxer.ts]: Flushed fragment 1 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 1 of level 4 [0.023,19.992]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 2 cc: 0 of [0-63] level: 4, target: 19.992
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 2 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 2 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 2 of level 4 [0.023,30.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 3 cc: 0 of [0-63] level: 4, target: 30
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 3 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 3 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 3 of level 4 [0.023,40.008]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 4 cc: 0 of [0-63] level: 4, target: 40.008
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 4 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 4 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 4 of level 4 [0.023,49.993]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 5 cc: 0 of [0-63] level: 4, target: 49.993
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 5 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 5 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 5 of level 4 [0.023,60.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 6 cc: 0 of [0-63] level: 4, target: 60
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 6 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 6 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 6 of level 4 [0.023,70.008]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 7 cc: 0 of [0-63] level: 4, target: 70.008
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 7 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
​ [log] > [transmuxer.ts]: Flushed fragment 7 of level 4
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 7 of level 4 [0.023,79.946]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
hls.ts:279 [log] > destroy
hls.ts:311 [log] > detachMedia
buffer-controller.ts:155 [log] > [buffer-controller]: media source detaching
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
main.js:337 Using Hls.js config: Object
logger.ts:74 [log] >
hls.ts:354 [log] > stopLoad
hls.ts:330 [log] > loadSource:https://os2man2.github.io/sample_hls_fmp4/master.m3u8
stream-controller.ts:540 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:302 [log] > attachMedia
level-controller.ts:171 [log] > [level-controller]: manifest loaded, 4 level(s) found, first bitrate: 211200
buffer-controller.ts:129 [log] > 2 bufferCodec event(s) expected
hls.ts:344 [log] > startLoad(-1)
level-controller.ts:250 [log] > [level-controller]: switching to level 0 from -1
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l0" group-id
audio-track-controller.ts:188 [log] > [audio-track-controller]: Now switching to audio-track index 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->IDLE
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 0 with URL-id 0 https://os2man2.github.io/sample_hls_fmp4/0/output.m3u8
base-stream-controller.ts:1265 [log] > [stream-controller]: STOPPED->IDLE
audio-track-controller.ts:248 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
buffer-controller.ts:736 [log] > [buffer-controller]: Media source opened
stream-controller.ts:604 [log] > [stream-controller]: Level 0 loaded [0,7], cc [0, 0] duration:15
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 15.000
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment initSegment cc: 0 level: 0, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
audio-track-controller.ts:85 [log] > [audio-track-controller]: audioTrack 0 loaded [0-7]
audio-stream-controller.ts:440 [log] > [audio-stream-controller]: Track 0 loaded [0,7],duration:14.512471000000001
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: initSegment of level 0 
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-7] level: 0, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: initSegment of track 0 
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-7] track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:66 [log] > demuxing in webworker
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 0 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 0 of level 0
transmuxer-interface.ts:66 [log] > demuxing in webworker
audio-stream-controller.ts:544 [log] > Unknown video PTS for cc 0, waiting for video PTS before demuxing audio frag 0 of [0 ,7],track 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->WAITING_INIT_PTS
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 0 of level 0
hls.ts:279 [log] > destroy
hls.ts:311 [log] > detachMedia
buffer-controller.ts:155 [log] > [buffer-controller]: media source detaching
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->STOPPED
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_INIT_PTS->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
main.js:337 Using Hls.js config: Object
logger.ts:74 [log] >
hls.ts:354 [log] > stopLoad
hls.ts:330 [log] > loadSource:https://os2man2.github.io/sample_hls_fmp4/master.m3u8
stream-controller.ts:540 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:302 [log] > attachMedia
level-controller.ts:171 [log] > [level-controller]: manifest loaded, 4 level(s) found, first bitrate: 211200
buffer-controller.ts:129 [log] > 2 bufferCodec event(s) expected
hls.ts:344 [log] > startLoad(-1)
level-controller.ts:250 [log] > [level-controller]: switching to level 0 from -1
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l0" group-id
audio-track-controller.ts:188 [log] > [audio-track-controller]: Now switching to audio-track index 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->IDLE
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 0 with URL-id 0 https://os2man2.github.io/sample_hls_fmp4/0/output.m3u8
base-stream-controller.ts:1265 [log] > [stream-controller]: STOPPED->IDLE
audio-track-controller.ts:248 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
buffer-controller.ts:736 [log] > [buffer-controller]: Media source opened
stream-controller.ts:604 [log] > [stream-controller]: Level 0 loaded [0,7], cc [0, 0] duration:15
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 15.000
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment initSegment cc: 0 level: 0, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
audio-track-controller.ts:85 [log] > [audio-track-controller]: audioTrack 0 loaded [0-7]
audio-stream-controller.ts:440 [log] > [audio-stream-controller]: Track 0 loaded [0,7],duration:14.512471000000001
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: initSegment of level 0 
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-7] level: 0, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: initSegment of track 0 
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-7] track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:66 [log] > demuxing in webworker
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 0 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 0 of level 0
transmuxer-interface.ts:66 [log] > demuxing in webworker
audio-stream-controller.ts:544 [log] > Unknown video PTS for cc 0, waiting for video PTS before demuxing audio frag 0 of [0 ,7],track 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->WAITING_INIT_PTS
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 0 of level 0
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:603 [log] >
2f88ac54-3225-4064-9822-fa938787ec05:603 [log] >
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
audio-stream-controller.ts:113 [log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_INIT_PTS->FRAG_LOADING
transmuxer-interface.ts:180 [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
2f88ac54-3225-4064-9822-fa938787ec05:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
audio-stream-controller.ts:829 [log] > [audio-stream-controller]: Switching audio track : flushing all audio
audio-stream-controller.ts:777 [log] > [audio-stream-controller]: Init audio buffer, container:audio/mp4, codecs[parsed]=[mp4a.40.2]
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.641028)
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
stream-controller.ts:819 [log] > [stream-controller]: Alternate track found, use video.buffered to schedule main fragment loading
buffer-controller.ts:810 [log] > [buffer-controller]: Removing [0,15] from the audio SourceBuffer
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 0 of level 0 [0.000,2.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 3 from 0
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l3" group-id
audio-track-controller.ts:188 [log] > [audio-track-controller]: Now switching to audio-track index 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
audio-track-controller.ts:248 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 3 with URL-id 0 https://os2man2.github.io/sample_hls_fmp4/6/output.m3u8
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->WAITING_LEVEL
audio-stream-controller.ts:591 [warn] > [audio-stream-controller]: Fragment 0 of level 0 finished buffering, but was aborted. state: WAITING_TRACK, audioSwitch: true
onFragBuffered @ audio-stream-controller.ts:591
stream-controller.ts:604 [log] > [stream-controller]: Level 3 loaded [0,7], cc [0, 0] duration:15
base-stream-controller.ts:1265 [log] > [stream-controller]: WAITING_LEVEL->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment initSegment cc: 0 level: 3, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
audio-track-controller.ts:85 [log] > [audio-track-controller]: audioTrack 0 loaded [0-7]
audio-stream-controller.ts:440 [log] > [audio-stream-controller]: Track 0 loaded [0,7],duration:14.512471000000001
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: initSegment of level 3 [0.000,2.000]
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 1 cc: 0 of [0-7] level: 3, target: 2
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
/favicon.ico:1 Failed to load resource: the server responded with a status of 404 ()
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: initSegment of track 0 [0.000,2.020]
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-7] track: 0, target: 0.158
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 3 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 2
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 1 of level 3
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 1 of level 3
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 0 of level 0
2f88ac54-3225-4064-9822-fa938787ec05:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
audio-stream-controller.ts:829 [log] > [audio-stream-controller]: Switching audio track : flushing all audio
buffer-controller.ts:810 [log] > [buffer-controller]: Removing [0,15] from the audio SourceBuffer
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 1 of level 3 [0.000,4.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 2 from 3
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l2" group-id
audio-track-controller.ts:188 [log] > [audio-track-controller]: Now switching to audio-track index 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
audio-track-controller.ts:248 [log] > [audio-track-controller]: loading audio-track playlist for id: 0
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 2 with URL-id 0 https://os2man2.github.io/sample_hls_fmp4/4/output.m3u8
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->WAITING_LEVEL
audio-stream-controller.ts:591 [warn] > [audio-stream-controller]: Fragment 0 of level 0 finished buffering, but was aborted. state: WAITING_TRACK, audioSwitch: true
onFragBuffered @ audio-stream-controller.ts:591
audio-track-controller.ts:85 [log] > [audio-track-controller]: audioTrack 0 loaded [0-7]
audio-stream-controller.ts:440 [log] > [audio-stream-controller]: Track 0 loaded [0,7],duration:14.512471000000001
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 track: 0, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
stream-controller.ts:604 [log] > [stream-controller]: Level 2 loaded [0,7], cc [0, 0] duration:15
base-stream-controller.ts:1265 [log] > [stream-controller]: WAITING_LEVEL->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment initSegment cc: 0 level: 2, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: initSegment of track 0 [0.000,2.020]
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-7] track: 0, target: 0.881
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: initSegment of level 2 [0.000,4.000]
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 2 cc: 0 of [0-7] level: 2, target: 4
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 0 of level 0
2f88ac54-3225-4064-9822-fa938787ec05:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
audio-stream-controller.ts:829 [log] > [audio-stream-controller]: Switching audio track : flushing all audio
buffer-controller.ts:810 [log] > [buffer-controller]: Removing [0,15] from the audio SourceBuffer
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: 0 of track 0 [0.000,2.020]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 2 p: -1 level: 2 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 4
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 2 of level 2
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 2 of level 2
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 2 of level 2 [0.000,6.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 3 from 2
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l3" group-id
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 3 cc: 0 of [0-7] level: 3, target: 6
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 3 p: -1 level: 3 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 6
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 3 of level 3
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 3 of level 3
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 3 of level 3 [0.000,8.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 4 cc: 0 of [0-7] level: 3, target: 8
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 4 of level 3
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 4 of level 3
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 4 of level 3 [0.000,10.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 2 from 3
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l2" group-id
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 5 cc: 0 of [0-7] level: 2, target: 10
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 5 p: -1 level: 2 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 10
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 5 of level 2
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 5 of level 2
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 5 of level 2 [0.000,12.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 0 from 2
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l0" group-id
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 6 cc: 0 of [0-7] level: 0, target: 12
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
gap-controller.ts:208 [warn] > Playback stalling at @1.945726 due to low buffer (buffer=0.07440899999999973)
_reportStall @ gap-controller.ts:208
latency-controller.ts:188 [warn] > [playback-rate-controller]: Stall detected, adjusting target latency
onError @ latency-controller.ts:188
main.js:721 Error event: Object
(anonymous) @ main.js:721
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 1 cc: 0 of [0-7] track: 0, target: 2.02
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 6 p: -1 level: 0 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 12
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 6 of level 0
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 6 of level 0
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 1 of level 0
2f88ac54-3225-4064-9822-fa938787ec05:935 [log] > [transmuxer.ts]: Flushed fragment 1 of level 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 6 of level 0 [0.000,14.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 3 from 0
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 1 track(s) found in "l3" group-id
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 7 cc: 0 of [0-7] level: 3, target: 14
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: 1 of track 0 [0.000,4.017]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:962 [log] > [audio-stream-controller]: SN 1 just loaded, load next one: 2
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 2 cc: 0 of [0-7] track: 0, target: 6.037
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
gap-controller.ts:60 [warn] > playback not stuck anymore @2.089026, after 737ms
poll @ gap-controller.ts:60
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 7 p: -1 level: 3 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 14
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 7 of level 3
eacf9fa6-d196-4dc4-9d02-d95e2612c10d:935 [log] > [transmuxer.ts]: Flushed fragment 7 of level 3
base-stream-controller.ts:1265 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1218 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.641028/avc1.641028]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 2 of level 0
2f88ac54-3225-4064-9822-fa938787ec05:935 [log] > [transmuxer.ts]: Flushed fragment 2 of level 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 7 of level 3 [0.000,15.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
buffer-controller.ts:501 [log] > [buffer-controller]: video sourceBuffer now EOS
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->ENDED
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: 2 of track 0 [0.000,6.014]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
gap-controller.ts:208 [warn] > Playback stalling at @5.943839 due to low buffer (buffer=0.07012800000000041)
_reportStall @ gap-controller.ts:208
latency-controller.ts:188 [warn] > [playback-rate-controller]: Stall detected, adjusting target latency
onError @ latency-controller.ts:188
main.js:721 Error event: Object
(anonymous) @ main.js:721
@robwalch robwalch added the Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. label Apr 8, 2021
@robwalch
Copy link
Collaborator

robwalch commented Apr 8, 2021

Hi @os2man2,

This is a great find, and the sample stream would be a great one to archive as we do not have streams with per level audio groups in fmp4 format. The transmuxer is not resetting between audio group switches, so it appends the same segment from alternate groups after the last one which should be written over.

This line should catch that the change from sn 1 of group "l3" to sn 1 of group "l2" is not contiguous, but trackSwitch is false and we're not passing in group-id info to compare the change.

const contiguous =
!trackSwitch && (snDiff === 1 || (snDiff === 0 && partDiff === 1));

@robwalch robwalch added Bug and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Apr 8, 2021
robwalch pushed a commit that referenced this issue Apr 8, 2021
robwalch pushed a commit that referenced this issue Apr 8, 2021
robwalch pushed a commit that referenced this issue Apr 8, 2021
@robwalch robwalch added this to the 1.0.1 milestone Apr 9, 2021
@robwalch robwalch added this to Top priorities in Release Planning and Backlog via automation Apr 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Release Planning and Backlog
  
Top priorities
Development

Successfully merging a pull request may close this issue.

2 participants