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

The video can be played in 1.4.3 but not in 1.4.4+ #5857

Closed
5 tasks done
zsokami opened this issue Sep 30, 2023 · 1 comment · Fixed by #5858
Closed
5 tasks done

The video can be played in 1.4.3 but not in 1.4.4+ #5857

zsokami opened this issue Sep 30, 2023 · 1 comment · Fixed by #5858
Labels
Regression A bug introduced in a recent release Stream Issue

Comments

@zsokami
Copy link

zsokami commented Sep 30, 2023

What version of Hls.js are you using?

canary

What browser (including version) are you using?

Chrome 117.0.5938.132

What OS (including version) are you using?

Windows 10

Test stream

https://media-oss.plasticmemory.net/m3u8/1695961244547.m3u8

Configuration

{ debug: true }

Additional player setup steps

No response

Checklist

Steps to reproduce

  1. Play the test stream with 1.4.4+

Expected behaviour

New version can play

What actually happened?

1.4.3 can play but 1.4.4+ can't

Console output

logger.ts:74 [log] > Debug logs enabled for "Hls instance" in hls.js version 1.5.0-alpha.0.0.canary.9557
hls.ts:418 [log] > stopLoad
hls.ts:386 [log] > loadSource:https://media-oss.plasticmemory.net/m3u8/1695961244547.m3u8
stream-controller.ts:575 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:356 [log] > attachMedia
buffer-controller.ts:191 [log] > [buffer-controller] created media source: MediaSource
buffer-controller.ts:984 [log] > [buffer-controller] Media source opened
base-stream-controller.ts:1780 [log] > [subtitle-stream-controller]: STOPPED->IDLE
level-controller.ts:320 [log] > [level-controller]: manifest loaded, 1 level(s) found, first bitrate: 0
buffer-controller.ts:180 [log] > [buffer-controller] 1 bufferCodec event(s) expected
hls.ts:407 [log] > startLoad(-1)
level-controller.ts:415 [log] > [level-controller]: Switching to level 0 (SDR @0) from level -1
base-stream-controller.ts:1780 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:1780 [log] > [subtitle-stream-controller]: IDLE->STOPPED
base-stream-controller.ts:1780 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:640 [log] > [stream-controller]: Level 0 loaded [0,345][part-345--1], cc [0, 0] duration:1434.9762350000003
buffer-controller.ts:855 [log] > [buffer-controller] Updating Media Source duration to 1434.976
base-stream-controller.ts:747 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-345] level: 0, target: 0
base-stream-controller.ts:1780 [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:386 [log] > [stream-controller]: Loaded fragment 0 of level 0
blob:http://127.0.0.1:5501/7f8f935b-a0a4-4517-99a5-46b8cf69b542:544 [log] > Debug logs enabled for "main" in hls.js version 1.5.0-alpha.0.0.canary.9557
transmuxer-interface.ts:383 [log] > ADTS sync word found !
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:100 [warn] > Error in "main" Web Worker, fallback to inline
TransmuxerInterface.worker.onerror @ transmuxer-interface.ts:100
error (async)
TransmuxerInterface @ transmuxer-interface.ts:95
_handleFragmentLoadProgress @ stream-controller.ts:733
progressCallback @ base-stream-controller.ts:364
(anonymous) @ base-stream-controller.ts:784
Promise.then (async)
_doFragLoad @ base-stream-controller.ts:782
_loadFragForPlayback @ base-stream-controller.ts:367
loadFragment @ base-stream-controller.ts:343
loadFragment @ stream-controller.ts:379
doTickIdle @ stream-controller.ts:355
doTick @ stream-controller.ts:210
tick @ task-loop.ts:106
onLevelLoaded @ stream-controller.ts:701
emit @ index.js:203
emit @ hls.ts:286
trigger @ hls.ts:294
handlePlaylistLoaded @ playlist-loader.ts:676
handleTrackOrLevelPlaylist @ playlist-loader.ts:498
onSuccess @ playlist-loader.ts:314
readystatechange @ xhr-loader.ts:239
XMLHttpRequest.send (async)
openAndSendXhr @ xhr-loader.ts:166
loadInternal @ xhr-loader.ts:125
load @ xhr-loader.ts:84
load @ playlist-loader.ts:347
onManifestLoading @ playlist-loader.ts:154
emit @ index.js:203
emit @ hls.ts:286
trigger @ hls.ts:294
loadSource @ hls.ts:396
playM3u8 @ player.html:12
(anonymous) @ player.html:48
Show 2 more frames
Show less
base-stream-controller.ts:1638 [log] > [stream-controller]: Reset loading state
base-stream-controller.ts:1780 [log] > [stream-controller]: FRAG_LOADING->IDLE
base-stream-controller.ts:1638 [log] > [audio-stream-controller]: Reset loading state
base-stream-controller.ts:1780 [log] > [audio-stream-controller]: STOPPED->IDLE
base-stream-controller.ts:747 [log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-345] level: 0, target: 0
base-stream-controller.ts:1780 [log] > [stream-controller]: IDLE->FRAG_LOADING
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
aacdemuxer.ts:63 [log] > ADTS sync word found !
mp4-remuxer.ts:98 [log] > [mp4-remuxer]: ISGenerated flag reset
mp4-remuxer.ts:87 [log] > [mp4-remuxer]: initPTS & initDTS reset
mp4-remuxer.ts:92 [log] > [mp4-remuxer]: reset next timestamp
base-stream-controller.ts:1780 [log] > [stream-controller]: FRAG_LOADING->ERROR
base-stream-controller.ts:1780 [log] > [audio-stream-controller]: IDLE->ERROR
hls.ts:418 [log] > stopLoad
base-stream-controller.ts:1780 [log] > [stream-controller]: ERROR->STOPPED
base-stream-controller.ts:1780 [log] > [audio-stream-controller]: ERROR->STOPPED
base-stream-controller.ts:1780 [log] > [subtitle-stream-controller]: IDLE->STOPPED

Chrome media internals output

No response

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

The media segments are masquerading as image files. TS segments should only contain M2TS packets.

$ curl https://media-oss.plasticmemory.net/m3u8/1695961244547.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:6.631633,
https://mypics.zhaopin.cn/attachment/2023/09/29/29758b6a-9b7b-4a9d-af19-157b6ce7859b.png

Regressed with #5503 which exits the TS probe function when 0x47 byte is found before finding a real m2TS packet (happens with test asset above on 4th byte).
https://github.com/video-dev/hls.js/pull/5503/files#diff-4a467ddfe2310c97c29aac6fda61c534714123a1b68c7f198b0f8ddd0598c611R137-R138

@robwalch robwalch added Regression A bug introduced in a recent release Stream Issue and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. Bug labels Sep 30, 2023
robwalch added a commit that referenced this issue Sep 30, 2023
robwalch added a commit that referenced this issue Oct 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Regression A bug introduced in a recent release Stream Issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants