v0.14.4+
_Reproducible on 0.14.16 / 0.15.0-alpha.2_
Samsung 2017 Tizen 3.0 TV app
Mozilla/5.0 (SMART-TV; LINUX; Tizen 3.0) AppleWebKit/538.1 (KHTML, like Gecko) Version/3.0 TV Safari/538.1
https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
Stream should play
Stream fails with MEDIA ERROR 3
Error - v0.14.4+
[log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
[debug] > Loading playlist of type manifest, level: 0, id: null
[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
[log] > trigger BUFFER_RESET
[log] > attachMedia
[log] > media source opened
[log] > manifest loaded,5 level(s) found, first bitrate:2149280
[log] > 1 bufferCodec event(s) expected
[log] > set firstLevel:3
[log] > set autoLevelCapping:4
[log] > both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC
[log] > startLoad(-1)
[log] > switching to level 3
[debug] > Loading playlist of type level, level: 3, id: 0
[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
[log] > main stream-controller: STOPPED->IDLE
[log] > audio tracks updated
[log] > startLoad(-1)
[log] > main stream-controller: IDLE->STOPPED
[debug] > Loading playlist of type level, level: 3, id: 0
[log] > main stream-controller: STOPPED->IDLE
[log] > audio stream:STOPPED->STARTING
[log] > audio stream:STARTING->WAITING_TRACK
[log] > subtitle tracks updated
[log] > level 3 loaded [0,63],duration:634.584
[log] > Loading 0 of [0-63], level 3, nextLoadPosition: 0, bufferEnd: 0
[log] > demuxing in webworker
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > Loaded 0 of [0 ,63],level 3
[log] > Parsing 0 of [0 ,63],level 3, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > main:discontinuity detected
[log] > main:switch detected
[log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
[log] > set autoLevelCapping:4
[log] > InitPTS for cc: 0 found from main: 900909
[log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
[log] > creating sourceBuffer(video/mp4;codecs=avc1.64001f)
[log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
[log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.64001f/avc1.64001f]
[log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
[log] > Parsed video,PTS:[0.023,10.023],DTS:[-0.010/9.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
main.de46f758.chunk.js:1 Object {type: "MEDIA_ERROR", message: "A media error has occurred. (code: 3)", nativeEvent: Event}(anonymous function) @ main.de46f758.chunk.js:1(anonymous function) @ 2.ef3c5081.chunk.js:2t.__tryOrUnsub @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2t.__tryOrUnsub @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t.emitError @ 2.ef3c5081.chunk.js:2t.handleMediaError @ 2.ef3c5081.chunk.js:2t.__tryOrUnsub @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2t.notifyNext @ 2.ef3c5081.chunk.js:2t._next @ 2.ef3c5081.chunk.js:2t.next @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2
[log] > main buffered :
[log] > latency/loading/parsing/append/kbps:101/222/778/42/13406
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 1 of [0-63], level 3, nextLoadPosition: 10, bufferEnd: 10
[log] > main stream-controller: IDLE->FRAG_LOADING
[error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ 2.ef3c5081.chunk.js:2i.doAppending @ 2.ef3c5081.chunk.js:2n._onSBUpdateEnd @ 2.ef3c5081.chunk.js:2
[log] > Updating Media Source duration to 634.584
[log] > set autoLevelCapping:4
[log] > Loaded 1 of [0 ,63],level 3
[log] > Parsing 1 of [0 ,63],level 3, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > Parsed audio,PTS:[10.008,19.992],DTS:[10.008/19.992],nb:430,dropped:0
2[error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ 2.ef3c5081.chunk.js:2i.doAppending @ 2.ef3c5081.chunk.js:2i.onBufferAppending @ 2.ef3c5081.chunk.js:2t.onEventGeneric @ 2.ef3c5081.chunk.js:2t.onEvent @ 2.ef3c5081.chunk.js:2l.emit @ 2.ef3c5081.chunk.js:2r.trigger @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2e.exports @ 2.ef3c5081.chunk.js:2f.onFragParsingData @ 2.ef3c5081.chunk.js:2t.onEventGeneric @ 2.ef3c5081.chunk.js:2t.onEvent @ 2.ef3c5081.chunk.js:2l.emit @ 2.ef3c5081.chunk.js:2r.trigger @ 2.ef3c5081.chunk.js:2t.onWorkerMessage @ 2.ef3c5081.chunk.js:2
[log] > Parsed video,PTS:[10.023,20.023],DTS:[9.990/19.990],nb:600,dropped:0
2[error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ 2.ef3c5081.chunk.js:2i.doAppending @ 2.ef3c5081.chunk.js:2i.onBufferAppending @ 2.ef3c5081.chunk.js:2t.onEventGeneric @ 2.ef3c5081.chunk.js:2t.onEvent @ 2.ef3c5081.chunk.js:2l.emit @ 2.ef3c5081.chunk.js:2r.trigger @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2(anonymous function) @ 2.ef3c5081.chunk.js:2e.exports @ 2.ef3c5081.chunk.js:2f.onFragParsingData @ 2.ef3c5081.chunk.js:2t.onEventGeneric @ 2.ef3c5081.chunk.js:2t.onEvent @ 2.ef3c5081.chunk.js:2l.emit @ 2.ef3c5081.chunk.js:2r.trigger @ 2.ef3c5081.chunk.js:2t.onWorkerMessage @ 2.ef3c5081.chunk.js:2
[log] > main stream-controller: PARSING->PARSED
Working v0.14.3 has been tested and works as expected, logs below:
[log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
[debug] > Loading playlist of type manifest, level: 0, id: null
[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
[log] > trigger BUFFER_RESET
[log] > attachMedia
[log] > manifest loaded,5 level(s) found, first bitrate:2149280
[log] > 1 bufferCodec event(s) expected
[log] > set firstLevel:3
[log] > both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC
[log] > startLoad(-1)
[log] > switching to level 3
[debug] > Loading playlist of type level, level: 3, id: 0
[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
[log] > main stream-controller: STOPPED->IDLE
[log] > audio tracks updated
[log] > startLoad(-1)
[log] > main stream-controller: IDLE->STOPPED
[debug] > Loading playlist of type level, level: 3, id: 0
[log] > main stream-controller: STOPPED->IDLE
[log] > audio stream:STOPPED->STARTING
[log] > audio stream:STARTING->WAITING_TRACK
[log] > subtitle tracks updated
[log] > set autoLevelCapping:2
[log] > media source opened
[log] > startLoad(-1)
[log] > main stream-controller: IDLE->STOPPED
[debug] > Loading playlist of type level, level: 3, id: 0
[log] > main stream-controller: STOPPED->IDLE
[log] > audio stream:WAITING_TRACK->STOPPED
[log] > audio stream:STOPPED->STARTING
[log] > audio stream:STARTING->WAITING_TRACK
[log] > audio stream:WAITING_TRACK->STOPPED
[log] > audio stream:STOPPED->STARTING
[log] > audio stream:STARTING->WAITING_TRACK
[log] > level 3 loaded [0,63],duration:634.584
[log] > Loading 0 of [0 ,63],level 3, currentTime:0.000,bufferEnd:0.000
[log] > demuxing in webworker
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > Loaded 0 of [0 ,63],level 3
[log] > Parsing 0 of [0 ,63],level 3, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > main:discontinuity detected
[log] > main:switch detected
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
[log] > set autoLevelCapping:2
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > audio sampling rate : 44100
[log] > InitPTS for cc: 0 found from video track: 900909
[log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
[log] > creating sourceBuffer(video/mp4;codecs=avc1.64001f)
[log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
[log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.64001f/avc1.64001f]
[log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
[log] > Parsed video,PTS:[0.023,10.023],DTS:[0.000/9.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,9.989]
[log] > latency/loading/parsing/append/kbps:58/377/720/238/11003
[log] > main stream-controller: PARSED->IDLE
[log] > switching to level 4
[debug] > Loading playlist of type level, level: 4, id: 0
[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_8/193039199_mp4_h264_aac_fhd_7.m3u8
[log] > main stream-controller: IDLE->WAITING_LEVEL
[log] > Updating Media Source duration to 634.584
[log] > level 4 loaded [0,63],duration:634.567
[log] > main stream-controller: WAITING_LEVEL->IDLE
[log] > Loading 1 of [0 ,63],level 4, currentTime:0.000,bufferEnd:9.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > set autoLevelCapping:2
[log] > Loaded 1 of [0 ,63],level 4
[log] > Parsing 1 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > main:switch detected
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
[log] > set autoLevelCapping:2
blob:file:///97e71a42-7597-4dee-82f5-02b519109495:1 [log] > audio sampling rate : 44100
[log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
[log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.640028/avc1.640028]
[log] > Parsed audio,PTS:[10.008,19.992],DTS:[10.008/19.992],nb:430,dropped:0
[log] > Parsed video,PTS:[10.023,20.023],DTS:[9.990/19.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,19.989]
[log] > latency/loading/parsing/append/kbps:85/1173/1151/150/41224
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 2 of [0 ,63],level 4, currentTime:2.525,bufferEnd:19.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > Loaded 2 of [0 ,63],level 4
[log] > Parsing 2 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > Parsed audio,PTS:[19.992,30.000],DTS:[19.992/30.000],nb:431,dropped:0
[log] > Parsed video,PTS:[20.023,30.023],DTS:[19.990/29.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,29.989]
[log] > latency/loading/parsing/append/kbps:137/627/661/62/35026
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 3 of [0 ,63],level 4, currentTime:4.072,bufferEnd:29.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > set autoLevelCapping:2
[log] > set autoLevelCapping:2
[log] > Loaded 3 of [0 ,63],level 4
[log] > Parsing 3 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > set autoLevelCapping:2
[log] > Parsed audio,PTS:[30.000,40.008],DTS:[30.000/40.008],nb:431,dropped:0
[log] > Parsed video,PTS:[30.023,40.023],DTS:[29.990/39.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,39.989]
[log] > latency/loading/parsing/append/kbps:1150/1273/1129/182/29000
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 4 of [0 ,63],level 4, currentTime:7.749,bufferEnd:39.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > Loaded 4 of [0 ,63],level 4
[log] > Parsing 4 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > set autoLevelCapping:2
[log] > Parsed audio,PTS:[40.008,49.993],DTS:[40.008/49.993],nb:430,dropped:0
[log] > Parsed video,PTS:[40.023,50.023],DTS:[39.990/49.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,49.989]
[log] > latency/loading/parsing/append/kbps:173/674/584/76/36180
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 5 of [0 ,63],level 4, currentTime:9.353,bufferEnd:49.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > Loaded 5 of [0 ,63],level 4
[log] > Parsing 5 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > set autoLevelCapping:2
[log] > Parsed audio,PTS:[49.993,60.000],DTS:[49.993/60.000],nb:431,dropped:0
[log] > Parsed video,PTS:[50.023,60.023],DTS:[49.990/59.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,59.989]
[log] > latency/loading/parsing/append/kbps:21/744/712/97/42817
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 6 of [0 ,63],level 4, currentTime:10.916,bufferEnd:59.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > Loaded 6 of [0 ,63],level 4
[log] > Parsing 6 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > Parsed audio,PTS:[60.000,70.008],DTS:[60.000/70.008],nb:431,dropped:0
[log] > Parsed video,PTS:[60.023,70.023],DTS:[59.990/69.990],nb:600,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,69.989]
[log] > latency/loading/parsing/append/kbps:96/364/361/52/35686
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 7 of [0 ,63],level 4, currentTime:11.746,bufferEnd:69.989
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > Loaded 7 of [0 ,63],level 4
[log] > Parsing 7 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > Parsed audio,PTS:[70.008,79.946],DTS:[70.008/79.946],nb:428,dropped:0
[log] > Parsed video,PTS:[70.023,79.957],DTS:[69.990/79.923],nb:596,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.000,79.923]
[log] > latency/loading/parsing/append/kbps:241/494/499/78/38153
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 8 of [0 ,63],level 4, currentTime:13.125,bufferEnd:79.923
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > set autoLevelCapping:2
[log] > Loaded 8 of [0 ,63],level 4
[log] > Parsing 8 of [0 ,63],level 4, cc 0
[log] > main stream-controller: FRAG_LOADING->PARSING
[log] > set autoLevelCapping:2
Error - Logs from stable client (https://hls-js.netlify.app/demo/basic-usage.html):
[log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[debug] > Loading playlist of type manifest, level: 0, id: null
logger.js:40[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[log] > trigger BUFFER_RESET
logger.js:40[log] > attachMedia
logger.js:40[log] > media source opened
logger.js:40 [log] > manifest loaded,5 level(s) found, first bitrate:2149280
logger.js:40 [log] > 1 bufferCodec event(s) expected
logger.js:40 [log] > both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC
logger.js:40 [log] > startLoad(-1)
logger.js:40 [log] > switching to level 3
logger.js:40 [debug] > Loading playlist of type level, level: 3, id: 0
logger.js:40 [debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
logger.js:40 [log] > main stream-controller: STOPPED->IDLE
logger.js:40 [log] > audio tracks updated
logger.js:40 [log] > subtitle tracks updated
favicon.ico:1 GET https://hls-js.netlify.app/favicon.ico 404 (OK)
logger.js:40 [log] > level 3 loaded [0,63],duration:634.584
logger.js:40 [log] > Loading 0 of [0-63], level 3, nextLoadPosition: 0, bufferEnd: 0
logger.js:40 [log] > demuxing in webworker
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > Loaded 0 of [0 ,63],level 3
logger.js:40 [log] > Parsing 0 of [0 ,63],level 3, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > main:discontinuity detected
logger.js:40 [log] > main:switch detected
blob:https://hls-js.netlify.app/c05cb78b-ac47-4048-98a8-4bcd4f8a4bd0:562 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:https://hls-js.netlify.app/c05cb78b-ac47-4048-98a8-4bcd4f8a4bd0:562 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
blob:https://hls-js.netlify.app/c05cb78b-ac47-4048-98a8-4bcd4f8a4bd0:562 [log] > audio sampling rate : 44100
logger.js:40 [log] > InitPTS for cc: 0 found from main: 900909
logger.js:40 [log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
logger.js:40 [log] > creating sourceBuffer(video/mp4;codecs=avc1.64001f)
logger.js:40 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
logger.js:40 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.64001f/avc1.64001f]
logger.js:40 [log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
logger.js:40 [log] > Parsed video,PTS:[0.023,10.023],DTS:[-0.010/9.990],nb:600,dropped:0
logger.js:40 [log] > main stream-controller: PARSING->PARSED
logger.js:40 [log] > main buffered :
logger.js:40 [log] > latency/loading/parsing/append/kbps:50/280/572/35/16361
logger.js:40 [log] > main stream-controller: PARSED->IDLE
logger.js:40 [log] > Loading 1 of [0-63], level 3, nextLoadPosition: 10, bufferEnd: 10
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:607BufferController._this._onSBUpdateEnd @ buffer-controller.ts:298
logger.js:40 [log] > Updating Media Source duration to 634.584
logger.js:40 [log] > Loaded 1 of [0 ,63],level 3
logger.js:40 [log] > Parsing 1 of [0 ,63],level 3, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > Parsed audio,PTS:[10.008,19.992],DTS:[10.008/19.992],nb:430,dropped:0
2logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:607onBufferAppending @ buffer-controller.ts:400onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:182trigger @ observer.ts:13(anonymous function) @ stream-controller.js:1066onFragParsingData @ stream-controller.js:1059onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:203trigger @ observer.ts:13onWorkerMessage @ demuxer.js:145
logger.js:40 [log] > Parsed video,PTS:[10.023,20.023],DTS:[9.990/19.990],nb:600,dropped:0
2logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:607onBufferAppending @ buffer-controller.ts:400onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:182trigger @ observer.ts:13(anonymous function) @ stream-controller.js:1066onFragParsingData @ stream-controller.js:1059onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:203trigger @ observer.ts:13onWorkerMessage @ demuxer.js:145
logger.js:40 [log] > main stream-controller: PARSING->PARSED
Error - Logs from latest client (https://hls-js-dev.netlify.app/demo/basic-usage.html):
log] > stopLoad
logger.js:40[log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[debug] > Loading playlist of type manifest, level: 0, id: null
logger.js:40[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[log] > trigger BUFFER_RESET
logger.js:40[log] > attachMedia
logger.js:40[log] > manifest loaded,5 level(s) found, first bitrate:2149280
logger.js:40[log] > 1 bufferCodec event(s) expected
logger.js:40[log] > both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC
logger.js:40[log] > startLoad(-1)
logger.js:40[log] > switching to level 3
logger.js:40[debug] > Loading playlist of type level, level: 3, id: 0
logger.js:40[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
logger.js:40[log] > main stream-controller: STOPPED->IDLE
logger.js:40[log] > audio tracks updated
logger.js:40[log] > subtitle tracks updated
logger.js:40[log] > media source opened
logger.js:40[log] > startLoad(-1)
logger.js:40[log] > main stream-controller: IDLE->STOPPED
logger.js:40[debug] > Loading playlist of type level, level: 3, id: 0
logger.js:40[log] > main stream-controller: STOPPED->IDLE
logger.js:40[log] > audio stream:STOPPED->STARTING
logger.js:40[log] > audio stream:STARTING->WAITING_TRACK
logger.js:40[log] > audio stream:WAITING_TRACK->STOPPED
logger.js:40[log] > audio stream:STOPPED->STARTING
logger.js:40[log] > audio stream:STARTING->WAITING_TRACK
logger.js:40 [log] > level 3 loaded [0,63],duration:634.584
logger.js:40 [log] > Loading 0 of [0-63], level 3, nextLoadPosition: 0, bufferEnd: 0
logger.js:40 [log] > demuxing in webworker
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > Loaded 0 of [0 ,63],level 3
logger.js:40 [log] > Parsing 0 of [0 ,63],level 3, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > main:discontinuity detected
logger.js:40 [log] > main:switch detected
/favicon.ico:1 GET https://hls-js-dev.netlify.app/favicon.ico 404 (OK)
blob:https://hls-js-dev.netlify.app/8535053e-9089-499d-8d26-b7820f1c62d8:562 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:https://hls-js-dev.netlify.app/8535053e-9089-499d-8d26-b7820f1c62d8:562 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
blob:https://hls-js-dev.netlify.app/8535053e-9089-499d-8d26-b7820f1c62d8:562 [log] > audio sampling rate : 44100
logger.js:40 [log] > InitPTS for cc: 0 found from main: 900909
logger.js:40 [log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
logger.js:40 [log] > creating sourceBuffer(video/mp4;codecs=avc1.64001f)
logger.js:40 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
logger.js:40 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.64001f/avc1.64001f]
logger.js:40 [log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
logger.js:40 [log] > Parsed video,PTS:[0.023,10.023],DTS:[-0.010/9.990],nb:600,dropped:0
logger.js:40 [log] > main stream-controller: PARSING->PARSED
logger.js:40 [log] > main buffered :
logger.js:40 [log] > latency/loading/parsing/append/kbps:104/68/843/17/14839
logger.js:40 [log] > main stream-controller: PARSED->IDLE
logger.js:40 [log] > Loading 1 of [0-63], level 3, nextLoadPosition: 10, bufferEnd: 10
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:620BufferController._this._onSBUpdateEnd @ buffer-controller.ts:303
logger.js:40 [log] > Updating Media Source duration to 634.584
logger.js:40 [log] > Loaded 1 of [0 ,63],level 3
logger.js:40 [log] > Parsing 1 of [0 ,63],level 3, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > Parsed audio,PTS:[10.008,19.992],DTS:[10.008/19.992],nb:430,dropped:0
2logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:620onBufferAppending @ buffer-controller.ts:405onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:182trigger @ observer.ts:13(anonymous function) @ stream-controller.js:1065onFragParsingData @ stream-controller.js:1058onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:203trigger @ observer.ts:13onWorkerMessage @ demuxer.js:145
logger.js:40 [log] > Parsed video,PTS:[10.023,20.023],DTS:[9.990/19.990],nb:600,dropped:0
2logger.js:40 [error] > trying to append although a media error occured, flush segment and abort(anonymous function) @ logger.js:40doAppending @ buffer-controller.ts:620onBufferAppending @ buffer-controller.ts:405onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:182trigger @ observer.ts:13(anonymous function) @ stream-controller.js:1065onFragParsingData @ stream-controller.js:1058onEventGeneric @ event-handler.ts:82onEvent @ event-handler.ts:69emit @ index.js:203trigger @ observer.ts:13onWorkerMessage @ demuxer.js:145
logger.js:40 [log] > main stream-controller: PARSING->PARSED
Working - Logs for demo player with 0.14.3 (https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/demo/basic-usage.html):
[log] > loadSource:https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[debug] > Loading playlist of type manifest, level: 0, id: null
logger.js:40[debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
logger.js:40[log] > trigger BUFFER_RESET
logger.js:40[log] > attachMedia
logger.js:40 [log] > manifest loaded,5 level(s) found, first bitrate:2149280
logger.js:40 [log] > 1 bufferCodec event(s) expected
logger.js:40 [log] > both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC
logger.js:40 [log] > startLoad(-1)
logger.js:40 [log] > switching to level 3
logger.js:40 [debug] > Loading playlist of type level, level: 3, id: 0
logger.js:40 [debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
logger.js:40 [log] > main stream-controller: STOPPED->IDLE
logger.js:40 [log] > audio tracks updated
logger.js:40 [log] > subtitle tracks updated
logger.js:40 [log] > level 3 loaded [0,63],duration:634.584
logger.js:40 [log] > media source opened
logger.js:40 [log] > startLoad(-1)
logger.js:40 [log] > main stream-controller: IDLE->STOPPED
logger.js:40 [log] > main stream-controller: STOPPED->IDLE
logger.js:40 [log] > Loading 0 of [0 ,63],level 3, currentTime:-1.000,bufferEnd:-1.000
logger.js:40 [log] > demuxing in webworker
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > audio stream:STOPPED->STARTING
logger.js:40 [log] > audio stream:STARTING->WAITING_TRACK
logger.js:40 [log] > audio stream:WAITING_TRACK->STOPPED
logger.js:40 [log] > audio stream:STOPPED->STARTING
logger.js:40 [log] > audio stream:STARTING->WAITING_TRACK
logger.js:40 [log] > Loaded 0 of [0 ,63],level 3
logger.js:40 [log] > Parsing 0 of [0 ,63],level 3, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > main:discontinuity detected
logger.js:40 [log] > main:switch detected
favicon.ico:1 GET https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/favicon.ico 404 (OK)
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > audio sampling rate : 44100
logger.js:40 [log] > InitPTS for cc: 0 found from video track: 900909
logger.js:40 [log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.5)
logger.js:40 [log] > creating sourceBuffer(video/mp4;codecs=avc1.64001f)
logger.js:40 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
logger.js:40 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.64001f/avc1.64001f]
logger.js:40 [log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
logger.js:40 [log] > Updating Media Source duration to 634.584
logger.js:40 [log] > Parsed video,PTS:[0.023,10.023],DTS:[0.000/9.990],nb:600,dropped:0
logger.js:40 [log] > main stream-controller: PARSING->PARSED
logger.js:40 [log] > main buffered : [0.000,9.989]
logger.js:40 [log] > latency/loading/parsing/append/kbps:129/89/815/95/13574
logger.js:40 [log] > main stream-controller: PARSED->IDLE
logger.js:40 [log] > switching to level 4
logger.js:40 [debug] > Loading playlist of type level, level: 4, id: 0
logger.js:40 [debug] > Calling internal loader delegate for URL: https://test-streams.mux.dev/x36xhzz/url_8/193039199_mp4_h264_aac_fhd_7.m3u8
logger.js:40 [log] > main stream-controller: IDLE->WAITING_LEVEL
logger.js:40 [log] > level 4 loaded [0,63],duration:634.567
logger.js:40 [log] > main stream-controller: WAITING_LEVEL->IDLE
logger.js:40 [log] > Loading 1 of [0 ,63],level 4, currentTime:0.000,bufferEnd:9.989
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > Loaded 1 of [0 ,63],level 4
logger.js:40 [log] > Parsing 1 of [0 ,63],level 4, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > main:switch detected
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:4[44100Hz],channelConfig:2
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
blob:https://hls-js-734796c3-ba00-41f5-a29b-bd56d7d9f4a2.netlify.app/e31c6e6d-4091-4d13-8672-125f74…:562 [log] > audio sampling rate : 44100
logger.js:40 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.5/mp4a.40.5]
logger.js:40 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.640028/avc1.640028]
logger.js:40 [log] > Parsed audio,PTS:[10.008,19.992],DTS:[10.008/19.992],nb:430,dropped:0
logger.js:40 [log] > Parsed video,PTS:[10.023,20.023],DTS:[9.990/19.990],nb:600,dropped:0
logger.js:40 [log] > main stream-controller: PARSING->PARSED
logger.js:40 [log] > main buffered : [0.000,19.989]
logger.js:40 [log] > latency/loading/parsing/append/kbps:79/1042/1132/150/43874
logger.js:40 [log] > main stream-controller: PARSED->IDLE
logger.js:40 [log] > Loading 2 of [0 ,63],level 4, currentTime:2.325,bufferEnd:19.989
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > Loaded 2 of [0 ,63],level 4
logger.js:40 [log] > Parsing 2 of [0 ,63],level 4, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
Does it work with native playback with
Both native <video /> and AVPlay playback works. Unfortunately they have limited functionality for more complex streams.
Tested on stable / latest / v0.14.3 demo clients too with their basic examples. Included the logs for those in the issue too.
I'm spotting a negative video DTS value. That's probably related to the media error:
[log] > Parsed audio,PTS:[0.000,10.008],DTS:[0.000/10.008],nb:431,dropped:0
[log] > Parsed video,PTS:[0.023,10.023],DTS:[-0.010/9.990],nb:600,dropped:0
There's a chrome UA check that we added to prevent a similar issue on older chrome clients. Maybe this UA check needs to be modified to include non-chromium Tizen smart TVs (or older Safari/webkit clients):
https://github.com/video-dev/hls.js/blob/master/src/remux/mp4-remuxer.js#L321
Try un-gating firstDTS = Math.max(0, firstDTS); and see if that fixes the issue.
Just tested and can verify that fix is working.
Thanks for quick turnaround! 🙂