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

Playback failure when order of audio tracks within each group is inconsistent in manifest. #3729

Closed
5 tasks done
Andrewtop opened this issue Apr 6, 2021 · 6 comments · Fixed by #3731
Closed
5 tasks done
Labels
Milestone

Comments

@Andrewtop
Copy link

What version of Hls.js are you using?

v.1.0.0

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

Chrome Version 89.0.4389.114 (Official Build) (x86_64)
Mac OS 10.15.6

Test stream:

-no possibility to provide;
Test stream should have multiple audio groups with different audio tracks. Order of the audio tracks in the group should be different for each group in order to reproduce.

Please check the manifest example:
Screenshot 2021-04-06 at 15 46 20

Configuration:

The default one from demo page should be enough.

{
  "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. Open stream with multiple audio groups and unaligned order of audio tracks inside group.(Refer to Test stream section for details)
  2. Playback stops with multiple AUDIO_TRACK_LOAD_ERROR when switch level occurs.

Inconsistent order of the languages inside the audio group in the manifest leads to playback failure in v1.0.0 when level auto switches. Same stream works fine in 0.14.17.

Different track order in audioGroup leads to AUDIO_TRACK_LOAD_ERROR in selectInitialTrack when switchLevel occurs.

Expected behavior

Playback starts without issues as in v0.14.17.

Actual behavior

Multiple fatal AUDIO_TRACK_LOAD_ERROR are triggered; Playback stops.

Console output

[log] > destroy
hls.ts:311 [log] > detachMedia
buffer-controller.ts:155 [log] > [buffer-controller]: media source detaching
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
main.js:337 Using Hls.js config: {debug: true, enableWorker: true, lowLatencyMode: true, backBufferLength: 90}
logger.ts:74 [log] >
hls.ts:354 [log] > stopLoad
hls.ts:330 [log] > loadSource:https://dve-streams.akamaized.net/ns-005/MjAyMQ/MQ/Ng/9a92ac3d-4f0c-48c6-8a8a-144c048d5bb9/master-6f14847b-02d2-457b-bdae-8d9ff2e70be6.m3u8?hdnea=exp=1617716108~acl=/ns-005/MjAyMQ/MQ/Ng/9a92ac3d-4f0c-48c6-8a8a-144c048d5bb9/*~id=ff02c02f-c80b-4958-b3a9-92f4b20f9b83~hmac=b6f66ae88e92112202be9edba7ef972247d00823d937dfbaf179f522106419d6
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, 7 level(s) found, first bitrate: 3587700
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 4 from -1
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 4 track(s) found in "audio-2" group-id
audio-track-controller.ts:188 [log] > [audio-track-controller]: Now switching to audio-track index 2
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->IDLE
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 4 with URL-id 0 https://dve-streams.akamaized.net/ns-005/MjAyMQ/MQ/Ng/9a92ac3d-4f0c-48c6-8a8a-144c048d5bb9/video/3f35b603-154b-4d02-a7eb-0ef3151895fc/index.m3u8?hdntl=exp=1617802509~acl=%2f*~id=ff02c02f-c80b-4958-b3a9-92f4b20f9b83~data=hdntl~hmac=aea975c4d5d2f449a29f1d95b5f093698602d593ee41e79abb4f8d5e236a6a4b
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: 2
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->STOPPED
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
49[Violation] Added non-passive event listener to a scroll-blocking <some> event. Consider marking event handler as 'passive' to make the page more responsive. See <URL>
stream-controller.ts:604 [log] > [stream-controller]: Level 4 loaded [0,1276], cc [0, 0] duration:7660.6
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 7660.600
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-1276] level: 4, target: 0
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
11[Violation] 'requestAnimationFrame' handler took <N>ms
audio-track-controller.ts:85 [log] > [audio-track-controller]: audioTrack 2 loaded [0-1276]
audio-stream-controller.ts:440 [log] > [audio-stream-controller]: Track 2 loaded [0,1276],duration:7660.871999999864
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-1276] track: 2, target: 0
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
[Violation] 'readystatechange' handler took 183ms
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 ,1276],track 2
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 2
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: 4 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 4
blob:https://hls-js.…ba-a1f22776f77c:603 [log] >
blob:https://hls-js.…b3-e2027e96ab9b:603 [log] >
blob:https://hls-js.…3-e2027e96ab9b:2692 [log] > [mp4-remuxer]: ISGenerated flag reset
blob:https://hls-js.…3-e2027e96ab9b:2681 [log] > [mp4-remuxer]: initPTS & initDTS reset
blob:https://hls-js.…b3-e2027e96ab9b:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 4
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.640029/avc1.640029]
audio-stream-controller.ts:113 [log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 9000
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: 2 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 0
blob:https://hls-js.…a-a1f22776f77c:7917 [log] > ADTS sync word found !
blob:https://hls-js.…a-a1f22776f77c:2692 [log] > [mp4-remuxer]: ISGenerated flag reset
blob:https://hls-js.…a-a1f22776f77c:2681 [log] > [mp4-remuxer]: initPTS & initDTS reset
blob:https://hls-js.…a-a1f22776f77c:7552 [log] > manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:3
blob:https://hls-js.…a-a1f22776f77c:7714 [log] > parsed codec:mp4a.40.5, rate:48000, channels:2
blob:https://hls-js.…ba-a1f22776f77c:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 2
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.5]
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.640029)
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
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,7660.6] from the audio SourceBuffer
[Violation] 'message' handler took 181ms
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 2 [0.002,6.018]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 1 cc: 0 of [0-1276] track: 2, target: 6.037
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 1 of level 2
blob:https://hls-js.…ba-a1f22776f77c:935 [log] > [transmuxer.ts]: Flushed fragment 1 of level 2
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] > [audio-stream-controller]: Buffered audio sn: 1 of track 2 [0.002,12.013]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 2 cc: 0 of [0-1276] track: 2, target: 12.013
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 2 of level 2
blob:https://hls-js.…ba-a1f22776f77c:935 [log] > [transmuxer.ts]: Flushed fragment 2 of level 2
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: 0 of level 4 [0.000,6.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 6 from 4
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 4 track(s) found in "audio-3" group-id
audio-track-controller.ts:209 [warn] > [audio-track-controller]: No track found for running audio group-ID: audio-3
selectInitialTrack @ audio-track-controller.ts:209
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->ERROR
audio-stream-controller.ts:625 [warn] > [audio-stream-controller]: audioTrackLoadError while loading frag, switching to ERROR state
onError @ audio-stream-controller.ts:625
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
main.js:721 Error event: {type: "mediaError", details: "audioTrackLoadError", fatal: true}
(anonymous) @ main.js:721
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
main.js:834 Fatal error : audioTrackLoadError
(anonymous) @ main.js:834
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
hls.ts:375 [log] > recoverMediaError
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] > [audio-stream-controller]: ERROR->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
hls.ts:302 [log] > attachMedia
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 6 with URL-id 0 https://dve-streams.akamaized.net/ns-005/MjAyMQ/MQ/Ng/9a92ac3d-4f0c-48c6-8a8a-144c048d5bb9/video/be244954-db7e-48b1-a5c9-a89e16a0a1b0/index.m3u8?hdntl=exp=1617802509~acl=%2f*~id=ff02c02f-c80b-4958-b3a9-92f4b20f9b83~data=hdntl~hmac=aea975c4d5d2f449a29f1d95b5f093698602d593ee41e79abb4f8d5e236a6a4b
base-stream-controller.ts:1265 [log] > [stream-controller]: STOPPED->WAITING_LEVEL
timeline-chart.ts:443 DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
    at SourceBuffer.<anonymous> (https://hls-js.netlify.app/dist/hls-demo.js:826:47)
(anonymous) @ timeline-chart.ts:443
buffer-controller.ts:736 [log] > [buffer-controller]: Media source opened
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 7660.600
audio-stream-controller.ts:133 [log] > [audio-stream-controller]: Override startPosition with lastCurrentTime @0.300
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->IDLE
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:604 [log] > [stream-controller]: Level 6 loaded [0,1276], cc [0, 0] duration:7660.6
base-stream-controller.ts:1265 [log] > [stream-controller]: WAITING_LEVEL->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 5 from 6
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 4 track(s) found in "audio-2" group-id
level-controller.ts:523 [log] > [level-controller]: Attempt loading level index 5 with URL-id 0 https://dve-streams.akamaized.net/ns-005/MjAyMQ/MQ/Ng/9a92ac3d-4f0c-48c6-8a8a-144c048d5bb9/video/9bc4cc75-b34e-48e5-961a-ec0cf644864f/index.m3u8?hdntl=exp=1617802509~acl=%2f*~id=ff02c02f-c80b-4958-b3a9-92f4b20f9b83~data=hdntl~hmac=aea975c4d5d2f449a29f1d95b5f093698602d593ee41e79abb4f8d5e236a6a4b
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->WAITING_LEVEL
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_TRACK->WAITING_INIT_PTS
stream-controller.ts:604 [log] > [stream-controller]: Level 5 loaded [0,1276], cc [0, 0] duration:7660.6
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-1276] level: 5, target: 6
base-stream-controller.ts:1265 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: WAITING_INIT_PTS->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-1276] track: 2, target: 0.002
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, audio]: Starting new transmux session for sn: 0 p: -1 level: 2 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 0.0023333333333333335
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 0 of level 2
transmuxer-interface.ts:66 [log] > demuxing in webworker
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 5 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 6
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 1 of level 5
blob:https://hls-js.…44-d95c3f4344cf:603 [log] >
blob:https://hls-js.…4-d95c3f4344cf:7917 [log] > ADTS sync word found !
blob:https://hls-js.…4-d95c3f4344cf:2692 [log] > [mp4-remuxer]: ISGenerated flag reset
blob:https://hls-js.…4-d95c3f4344cf:2681 [log] > [mp4-remuxer]: initPTS & initDTS reset
blob:https://hls-js.…4-d95c3f4344cf:7552 [log] > manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:3
blob:https://hls-js.…4-d95c3f4344cf:7714 [log] > parsed codec:mp4a.40.5, rate:48000, channels:2
blob:https://hls-js.…44-d95c3f4344cf:935 [log] > [transmuxer.ts]: Flushed fragment 0 of level 2
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->PARSING
audio-stream-controller.ts:777 [log] > [audio-stream-controller]: Init audio buffer, container:audio/mp4, codecs[parsed]=[mp4a.40.5]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSING->PARSED
blob:https://hls-js.…b0-bac5bdf526f0:603 [log] >
blob:https://hls-js.…0-bac5bdf526f0:2692 [log] > [mp4-remuxer]: ISGenerated flag reset
blob:https://hls-js.…0-bac5bdf526f0:2681 [log] > [mp4-remuxer]: initPTS & initDTS reset
blob:https://hls-js.…b0-bac5bdf526f0:935 [log] > [transmuxer.ts]: Flushed fragment 1 of level 5
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.640029/avc1.640029]
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
buffer-controller.ts:697 [log] > [buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.640029)
stream-controller.ts:819 [log] > [stream-controller]: Alternate track found, use video.buffered to schedule main fragment loading
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:466 [log] > [audio-stream-controller]: Buffered audio sn: 0 of track 2 [0.002,6.018]
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: PARSED->IDLE
base-stream-controller.ts:555 [log] > [audio-stream-controller]: Loading fragment 1 cc: 0 of [0-1276] track: 2, target: 6.018
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:329 [log] > [audio-stream-controller]: Loaded fragment 1 of level 2
blob:https://hls-js.…44-d95c3f4344cf:935 [log] > [transmuxer.ts]: Flushed fragment 1 of level 2
base-stream-controller.ts:466 [log] > [stream-controller]: Buffered main sn: 1 of level 5 [6.000,12.000]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSED->IDLE
level-controller.ts:250 [log] > [level-controller]: switching to level 6 from 5
audio-track-controller.ts:132 [log] > [audio-track-controller]: Updating audio tracks, 4 track(s) found in "audio-3" group-id
audio-track-controller.ts:209 [warn] > [audio-track-controller]: No track found for running audio group-ID: audio-3
selectInitialTrack @ audio-track-controller.ts:209
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: FRAG_LOADING->ERROR
audio-stream-controller.ts:625 [warn] > [audio-stream-controller]: audioTrackLoadError while loading frag, switching to ERROR state
onError @ audio-stream-controller.ts:625
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
main.js:721 Error event: {type: "mediaError", details: "audioTrackLoadError", fatal: true}
(anonymous) @ main.js:721
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
main.js:834 Fatal error : audioTrackLoadError
(anonymous) @ main.js:834
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
selectInitialTrack @ audio-track-controller.ts:211
switchLevel @ audio-track-controller.ts:137
onLevelSwitching @ audio-track-controller.ts:104
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
set @ level-controller.ts:261
set @ level-controller.ts:555
set @ hls.ts:469
doTickIdle @ stream-controller.ts:228
doTick @ stream-controller.ts:162
tick @ task-loop.ts:110
fragBufferedComplete @ base-stream-controller.ts:474
onFragBuffered @ stream-controller.ts:853
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
onUnblocked @ buffer-controller.ts:472
(anonymous) @ buffer-controller.ts:860
Promise.then (async)
blockBuffers @ buffer-controller.ts:858
onFragParsed @ buffer-controller.ts:486
emit @ index.js:203
emit @ hls.ts:238
trigger @ hls.ts:246
updateLevelTiming @ base-stream-controller.ts:1253
_handleTransmuxerFlush @ base-stream-controller.ts:632
onWorkerMessage @ transmuxer-interface.ts:278
hls.ts:364 [log] > swapAudioCodec
hls.ts:375 [log] > recoverMediaError
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] > [audio-stream-controller]: ERROR->STOPPED
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: IDLE->STOPPED
hls.ts:302 [log] > attachMedia
base-stream-controller.ts:555 [log] > [stream-controller]: Loading fragment 2 cc: 0 of [0-1276] level: 6, target: 12
base-stream-controller.ts:1265 [log] > [stream-controller]: STOPPED->FRAG_LOADING
buffer-controller.ts:736 [log] > [buffer-controller]: Media source opened
buffer-controller.ts:628 [log] > [buffer-controller]: Updating Media Source duration to 7660.600
base-stream-controller.ts:1265 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
base-stream-controller.ts:1265 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:1005 [log] > [stream-controller]: Swapping audio codec
transmuxer-interface.ts:66 [log] > demuxing in webworker
transmuxer-interface.ts:180 [log] > [transmuxer-interface, main]: Starting new transmux session for sn: 2 p: -1 level: 6 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 12
base-stream-controller.ts:329 [log] > [stream-controller]: Loaded fragment 2 of level 6
442053e1-1192-4eb8-bc70-eed3a8a0dc8d:603 [log] >
442053e1-1192-4eb8-bc70-eed3a8a0dc8d:2692 [log] > [mp4-remuxer]: ISGenerated flag reset
442053e1-1192-4eb8-bc70-eed3a8a0dc8d:2681 [log] > [mp4-remuxer]: initPTS & initDTS reset
442053e1-1192-4eb8-bc70-eed3a8a0dc8d:935 [log] > [transmuxer.ts]: Flushed fragment 2 of level 6
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.64002a/avc1.64002a]
base-stream-controller.ts:1265 [log] > [stream-controller]: PARSING->PARSED
@robwalch
Copy link
Collaborator

robwalch commented Apr 6, 2021

Hi @Andrewtop,

Please provide a complete sample of the parent manifest as text, including the #EXT-X-STREAM-INF entries so that I am clear on how the groups are associated with each variant. The screenshot sample only shows that the MEDIA entries are not ordered.

@robwalch robwalch added the Bug label Apr 6, 2021
robwalch pushed a commit that referenced this issue Apr 6, 2021
Adds 'name' property to audio and subtitle track switching events
Resolves #3729
@mtoczko
Copy link
Collaborator

mtoczko commented Apr 6, 2021

Hi @robwalch
Something's not right here, should be 3.

Updating audio tracks, 4 track(s) found in "audio-3" group-id

@robwalch
Copy link
Collaborator

robwalch commented Apr 6, 2021

I've created a stream that reproduces the issue and will have a PR up shortly:

https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/media-group-order.m3u8

@Andrewtop
Copy link
Author

@robwalch, that was fast! Thanks!

@robwalch robwalch removed the Need info label Apr 7, 2021
@robwalch
Copy link
Collaborator

robwalch commented Apr 7, 2021

Thanks @Andrewtop,

Can you confirm things are looking good with your test stream using this PR build?

https://deploy-preview-3731--hls-js-dev.netlify.app/demo/

@Andrewtop
Copy link
Author

I've checked stream with the build https://deploy-preview-3731--hls-js-dev.netlify.app/demo/ .

The stream starts to play for some time and then freez. I've played with configuration but still sometimes I'm getting bufferStalledError. What brought the attention is an error in the console:
Screenshot 2021-04-08 at 13 55 34

I'm not sure if it is related to this issue or not.

manifest-sample.txt

deploy-preview-3731--hls-js-dev.netlify.app-1617879683443.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants