video-dev / video-dev/hls.js

initial segments are missing audio causes video playback stuck

Open
#6,339 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

MSE sourcebuffer-track-mismatch Stream Issue
Dominant language
TypeScript
Stars
16.9k
Forks
2.8k
Avg merge
1d 12h
Merged PRs (30d)
27

Description

What version of Hls.js are you using?

v1.5.7

What browser (including version) are you using?

chrome: 123.0.6312.107(official version) (arm64)

What OS (including version) are you using?

macOS Sonoma 14.4.1 (23E224)

Test stream

No response

Configuration
{}
Additional player setup steps

No response

Checklist
Steps to reproduce

1、I have a stream. The first ts segment has no audio package, but the subsequent ts segment has audio information, and the playback will be stuck. The test flow used is as follows
testStream

2、The following is the information I got using https://e655f194.hls-js-dev.pages.dev/demo/ debug
v1.5.7-debugInfo

3、I installed the hls playback plug-in on chrome, and I found that m3u8 can be played using v0.14.16, debug information
v0.14.16-debugInfo

Expected behaviour

Can be played normally

What actually happened?

Playback from no audio to audio is stuck

Console output
hls.ts:357 [log] > destroy
hls.ts:389 [log] > detachMedia
buffer-controller.ts:243 [log] > [buffer-controller] media source detaching
main.js:339 Using Hls.js config: {debug: true, enableWorker: true, lowLatencyMode: true, backBufferLength: 90}
logger.ts:74 [log] > Debug logs enabled for "Hls instance" in hls.js version 1.5.7
hls.ts:442 [log] > stopLoad
hls.ts:410 [log] > loadSource:http://localhost:5501/test/test.m3u8
stream-controller.ts:576 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:380 [log] > attachMedia
buffer-controller.ts:195 [log] > [buffer-controller] created media source: MediaSource
buffer-controller.ts:988 [log] > [buffer-controller] Media source opened
level-controller.ts:337 [log] > [level-controller]: manifest loaded, 1 level(s) found, first bitrate: 0
buffer-controller.ts:184 [log] > [buffer-controller] 1 bufferCodec event(s) expected
hls.ts:431 [log] > startLoad(-1)
level-controller.ts:432 [log] > [level-controller]: Switching to level 0 (SDR @0) from level -1
base-stream-controller.ts:1781 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:1781 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:639 [log] > [stream-controller]: Level 0 loaded [0,5][part-5--1], cc [1, 1] duration:12
buffer-controller.ts:858 [log] > [buffer-controller] Updating Media Source duration to 12.000
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 0 cc: 1 of [0-5] level: 0, target: 0
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:89 [log] > injecting Web Worker for "main"
transmuxer-interface.ts:231 [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
        initSegmentChange: true
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 0 of level 0
blob:https://e655f194.hls-js-dev.pages.dev/38ace3fe-9048-449c-9c4d-e8be0054e7f5:555 [log] > Debug logs enabled for "main" in hls.js version 1.5.7
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: ISGenerated flag reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: initPTS & initDTS reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: reset next timestamp
transmuxer-interface.ts:383 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1308 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[/avc1.640033]
buffer-controller.ts:390 [log] > [buffer-controller] 0 bufferCodec event(s) expected video
buffer-controller.ts:937 [log] > [buffer-controller] creating sourceBuffer(video/mp4;codecs=avc1.640033)
audio-stream-controller.ts:134 [log] > [audio-stream-controller]: InitPTS for cc: 1 found from main: 245570656
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:560 [log] > [stream-controller]: Buffered main sn: 0 of level 0 (frag:[0.000-2.000] > buffer:[0.000-2.000])
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 1 cc: 1 of [0-5] level: 0, target: 2
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 1 of level 0
transmuxer-interface.ts:383 [log] > manifest codec:undefined, ADTS type:2, samplingIndex:4
transmuxer-interface.ts:383 [log] > parsed codec:mp4a.40.5, rate:44100, channels:2
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
buffer-operation-queue.ts:64 [warn] > [buffer-operation-queue]: Exception executing "audio" SourceBuffer operation: Error: Attempting to append to the audio SourceBuffer, but it does not exist
executeNext @ buffer-operation-queue.ts:64
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
buffer-controller.ts:535 [warn] > [buffer-controller] Failed 1/3 times to append segment in "audio" sourceBuffer
onError @ buffer-controller.ts:535
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
content-steering-controller.ts:206 [warn] > Could not resolve bufferAppendError ("Attempting to append to the audio SourceBuffer, but it does not exist") with content-steering for Pathway: . levels: 1 priorities: ["."] penalized: {".":5923604.599999994}
onError @ content-steering-controller.ts:206
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
base-stream-controller.ts:1639 [log] > [stream-controller]: Reset loading state
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->IDLE
hls.ts:442 [log] > stopLoad
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1781 [log] > [subtitle-stream-controller]: IDLE->STOPPED
main.js:734 Error event: {type: 'mediaError', parent: 'main', details: 'bufferAppendError', sourceBufferName: 'audio', frag: Fragment, …}
(anonymous) @ main.js:734
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
main.js:847 Fatal error : bufferAppendError
(anonymous) @ main.js:847
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
hls.ts:489 [log] > recoverMediaError
hls.ts:389 [log] > detachMedia
buffer-controller.ts:243 [log] > [buffer-controller] media source detaching
buffer-controller.ts:252 [warn] > [buffer-controller] onMediaDetaching: Failed to execute 'endOfStream' on 'MediaSource': The 'updating' attribute is true on one or more of this MediaSource's SourceBuffers. while calling endOfStream
onMediaDetaching @ buffer-controller.ts:252
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
detachMedia @ hls.ts:390
recoverMediaError @ hls.ts:491
handleMediaError @ main.js:1074
(anonymous) @ main.js:851
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
hls.ts:380 [log] > attachMedia
buffer-controller.ts:195 [log] > [buffer-controller] created media source: MediaSource
buffer-controller.ts:988 [log] > [buffer-controller] Media source opened
buffer-controller.ts:858 [log] > [buffer-controller] Updating Media Source duration to 12.000
stream-controller.ts:149 [log] > [stream-controller]: Override startPosition with lastCurrentTime @0.000
base-stream-controller.ts:1781 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 0 cc: 1 of [0-5] level: 0, target: 0
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:89 [log] > injecting Web Worker for "main"
transmuxer-interface.ts:231 [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
        initSegmentChange: true
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 0 of level 0
blob:https://e655f194.hls-js-dev.pages.dev/53403939-d56f-46b9-a9fe-c10e9672f7af:555 [log] > Debug logs enabled for "main" in hls.js version 1.5.7
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: ISGenerated flag reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: initPTS & initDTS reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: reset next timestamp
transmuxer-interface.ts:383 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1308 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[/avc1.640033]
buffer-controller.ts:390 [log] > [buffer-controller] 0 bufferCodec event(s) expected video
buffer-controller.ts:937 [log] > [buffer-controller] creating sourceBuffer(video/mp4;codecs=avc1.640033)
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:560 [log] > [stream-controller]: Buffered main sn: 0 of level 0 (frag:[0.000-2.000] > buffer:[0.000-2.000])
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSED->IDLE
stream-controller.ts:1025 [log] > [stream-controller]: seek to target start position 0.000099 from current time 0
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 1 cc: 1 of [0-5] level: 0, target: 2
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:241 [log] > [stream-controller]: media seeking to 0.000, state: FRAG_LOADING
base-stream-controller.ts:241 [log] > [audio-stream-controller]: media seeking to 0.000, state: STOPPED
base-stream-controller.ts:241 [log] > [subtitle-stream-controller]: media seeking to 0.000, state: STOPPED
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 1 of level 0
stream-controller.ts:556 [log] > [stream-controller]: Media seeked to 0.001
transmuxer-interface.ts:383 [log] > manifest codec:undefined, ADTS type:2, samplingIndex:4
transmuxer-interface.ts:383 [log] > parsed codec:mp4a.40.5, rate:44100, channels:2
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
buffer-operation-queue.ts:64 [warn] > [buffer-operation-queue]: Exception executing "audio" SourceBuffer operation: Error: Attempting to append to the audio SourceBuffer, but it does not exist
executeNext @ buffer-operation-queue.ts:64
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
buffer-controller.ts:535 [warn] > [buffer-controller] Failed 1/3 times to append segment in "audio" sourceBuffer
onError @ buffer-controller.ts:535
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
content-steering-controller.ts:206 [warn] > Could not resolve bufferAppendError ("Attempting to append to the audio SourceBuffer, but it does not exist") with content-steering for Pathway: . levels: 1 priorities: ["."] penalized: {".":5923604.599999994}
onError @ content-steering-controller.ts:206
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
base-stream-controller.ts:1639 [log] > [stream-controller]: Reset loading state
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->IDLE
hls.ts:442 [log] > stopLoad
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->STOPPED
main.js:734 Error event: {type: 'mediaError', parent: 'main', details: 'bufferAppendError', sourceBufferName: 'audio', frag: Fragment, …}
(anonymous) @ main.js:734
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
main.js:847 Fatal error : bufferAppendError
(anonymous) @ main.js:847
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
hls.ts:478 [log] > swapAudioCodec
hls.ts:489 [log] > recoverMediaError
hls.ts:389 [log] > detachMedia
buffer-controller.ts:243 [log] > [buffer-controller] media source detaching
buffer-controller.ts:252 [warn] > [buffer-controller] onMediaDetaching: Failed to execute 'endOfStream' on 'MediaSource': The 'updating' attribute is true on one or more of this MediaSource's SourceBuffers. while calling endOfStream
onMediaDetaching @ buffer-controller.ts:252
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
detachMedia @ hls.ts:390
recoverMediaError @ hls.ts:491
handleMediaError @ main.js:1085
(anonymous) @ main.js:851
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
hls.ts:380 [log] > attachMedia
buffer-controller.ts:195 [log] > [buffer-controller] created media source: MediaSource
buffer-controller.ts:988 [log] > [buffer-controller] Media source opened
buffer-controller.ts:858 [log] > [buffer-controller] Updating Media Source duration to 12.000
stream-controller.ts:149 [log] > [stream-controller]: Override startPosition with lastCurrentTime @0.002
base-stream-controller.ts:1781 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 0 cc: 1 of [0-5] level: 0, target: 0.002
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:89 [log] > injecting Web Worker for "main"
transmuxer-interface.ts:231 [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
        initSegmentChange: true
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 0 of level 0
blob:https://e655f194.hls-js-dev.pages.dev/48070c24-5f56-4e6f-8c8a-fa8b2eb39a4c:555 [log] > Debug logs enabled for "main" in hls.js version 1.5.7
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: ISGenerated flag reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: initPTS & initDTS reset
transmuxer-interface.ts:383 [log] > [mp4-remuxer]: reset next timestamp
transmuxer-interface.ts:383 [log] > [transmuxer.ts]: Flushed fragment 0 of level 0
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1308 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[/avc1.640033]
buffer-controller.ts:390 [log] > [buffer-controller] 0 bufferCodec event(s) expected video
buffer-controller.ts:937 [log] > [buffer-controller] creating sourceBuffer(video/mp4;codecs=avc1.640033)
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:560 [log] > [stream-controller]: Buffered main sn: 0 of level 0 (frag:[0.000-2.000] > buffer:[0.000-2.000])
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSED->IDLE
stream-controller.ts:1025 [log] > [stream-controller]: seek to target start position 0.002499 from current time 0
base-stream-controller.ts:748 [log] > [stream-controller]: Loading fragment 1 cc: 1 of [0-5] level: 0, target: 2
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:241 [log] > [stream-controller]: media seeking to 0.002, state: FRAG_LOADING
base-stream-controller.ts:241 [log] > [audio-stream-controller]: media seeking to 0.002, state: STOPPED
base-stream-controller.ts:241 [log] > [subtitle-stream-controller]: media seeking to 0.002, state: STOPPED
base-stream-controller.ts:389 [log] > [stream-controller]: Loaded fragment 1 of level 0
transmuxer-interface.ts:383 [log] > manifest codec:undefined, ADTS type:2, samplingIndex:4
transmuxer-interface.ts:383 [log] > parsed codec:mp4a.40.5, rate:44100, channels:2
stream-controller.ts:556 [log] > [stream-controller]: Media seeked to 0.003
base-stream-controller.ts:1781 [log] > [stream-controller]: FRAG_LOADING->PARSING
buffer-operation-queue.ts:64 [warn] > [buffer-operation-queue]: Exception executing "audio" SourceBuffer operation: Error: Attempting to append to the audio SourceBuffer, but it does not exist
executeNext @ buffer-operation-queue.ts:64
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
buffer-controller.ts:535 [warn] > [buffer-controller] Failed 1/3 times to append segment in "audio" sourceBuffer
onError @ buffer-controller.ts:535
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
content-steering-controller.ts:206 [warn] > Could not resolve bufferAppendError ("Attempting to append to the audio SourceBuffer, but it does not exist") with content-steering for Pathway: . levels: 1 priorities: ["."] penalized: {".":5923604.599999994}
onError @ content-steering-controller.ts:206
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
base-stream-controller.ts:1639 [log] > [stream-controller]: Reset loading state
base-stream-controller.ts:1781 [log] > [stream-controller]: PARSING->IDLE
hls.ts:442 [log] > stopLoad
base-stream-controller.ts:1781 [log] > [stream-controller]: IDLE->STOPPED
main.js:734 Error event: {type: 'mediaError', parent: 'main', details: 'bufferAppendError', sourceBufferName: 'audio', frag: Fragment, …}
(anonymous) @ main.js:734
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
main.js:847 Fatal error : bufferAppendError
(anonymous) @ main.js:847
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
onError @ buffer-controller.ts:542
executeNext @ buffer-operation-queue.ts:67
append @ buffer-operation-queue.ts:29
onBufferAppending @ buffer-controller.ts:545
emit @ index.js:203
emit @ hls.ts:310
trigger @ hls.ts:318
bufferFragmentData @ base-stream-controller.ts:933
_handleTransmuxComplete @ stream-controller.ts:1220
handleTransmuxComplete @ transmuxer-interface.ts:411
onWorkerMessage @ transmuxer-interface.ts:371
TransmuxerInterface.onwmsg @ transmuxer-interface.ts:92
Chrome media internals output

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the linked test.zip stream and compare the v1.5.7 logs with the v0.14.16 logs. Start in buffer-controller.ts, buffer-operation-queue.ts, stream-controller.ts, and audio-stream-controller.ts around creation and appending of the audio SourceBuffer. Done means playback continues when the first segment has no audio and a later segment introduces audio, with relevant tests covering the transition.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
audio-video-rtc, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.