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

Strange Sound Behavior on Ubuntu 24.04 and Multi-Channel Audio #6504

Open
5 tasks done
lindenb1 opened this issue Jun 15, 2024 · 6 comments
Open
5 tasks done

Strange Sound Behavior on Ubuntu 24.04 and Multi-Channel Audio #6504

lindenb1 opened this issue Jun 15, 2024 · 6 comments
Labels
browser: Firefox Browser issue If there is an underlying issue with the browser that hls.js is running on, this tag should be used. Bug Suggested-Workaround

Comments

@lindenb1
Copy link

lindenb1 commented Jun 15, 2024

What version of Hls.js are you using?

1.5.11

What browser (including version) are you using?

FireFox 127.0

What OS (including version) are you using?

Ubuntu 24.04 (6.8.0-35-generic) x86_64 GNU/Linux

Test stream

No response

Configuration

Unnecessary

Additional player setup steps

Unnecessary

Checklist

Steps to reproduce

Reproducing the issue is relatively straightforward. First, set up an Ubuntu 24.04 x86/64 environment. Then, obtain an HLS stream that includes two audio languages or at least two different channel setups. The first audio track of the HLS stream uses 2-channel audio, and the second uses 6-channel audio, which triggers the problem. The issue only occurs when switching between different channel setups, not when switching between two stereo tracks or two 5.1 Channel tracks!

Regardless of whether you switch from the 2-channel track to the 6-channel track or vice versa, after switching, the audio playback is either extremely slow or excessively fast. It seems as if the audio playback rate drops to 0.01x or increases to 10x, which sounds quite humorous.

This issue only occurs on Ubuntu 24.04. It works fine on Windows 10/11. The cause is unclear, but it could be related to a pipe-wire issues or 6.8 Kernel, I don't really know.

Expected behaviour

No SlowMotion or Super Fast like audio playback ....

What actually happened?

The audio sounds SlowMotion like or very fast after switching tracks with different channel setup like:

  • Deutsch (Stereo) (Plays initially)
  • English (5.1 Surround) (switching to this track will make audio SlowMotion like)

or this way around:

  • English (5.1 Surround) (Plays initially)
  • Deutsch (Stereo) (switching to this track will make audio play extremely fast.)

?!?! What

Console output

When I play a video using HLS.js that is 20-30 minutes long, I don't encounter any console errors. However, when the video is longer, around 90 minutes, I receive the following error, and the entire playback breaks while the Audio anomalies stays the same ...:

HLS.js error: mediaError - fatal: false - bufferStalledError
HLS.js error: mediaError - fatal: false - bufferNudgeOnStall

When using Windows or a more stable Linux distribution, such as one that hasn't been released just a few weeks ago like Ubuntu 24.04, and which uses PulseAudio, I don't experience this issue at all.

In conclusion, I don't believe this issue is directly related to HLS.js. If someone else encounters the same problem, it seems to be a bug related to the kernel or PulseAudio in Ubuntu 24.04. Not really sure.


DEBUG LOG:

`[webpack-dev-server] Disconnected! polyfills.js:6283:28
[webpack-dev-server] Trying to reconnect... polyfills.js:6283:28
[webpack-dev-server] Server started: Hot Module Replacement disabled, Live Reloading enabled, Progress disabled, Overlay enabled. index.js:484:21
Angular is running in development mode. core.mjs:30883:16
Access Token Checked auth.service.ts:57:26
MouseEvent.mozPressure is deprecated. Use PointerEvent.pressure instead. video.es.js:2145:10
MouseEvent.mozInputSource is deprecated. Use PointerEvent.pointerType instead. video.es.js:2145:10
[log] > Debug logs enabled for "Hls instance" in hls.js version 1.5.4 hls.mjs:414:21
[log] > attachMedia hls.mjs:27934:11
[log] > [buffer-controller] created media source: MediaSource hls.mjs:17817:11
[log] > stopLoad hls.mjs:27992:11
[log] > loadSource:{URL_HIDDEN}.m3u8 hls.mjs:27962:11
[log] > [stream-controller]: Trigger BUFFER_RESET hls.mjs:26974:9
[log] > [buffer-controller] Media source opened hls.mjs:17697:11
[log] > [level-controller]: manifest loaded, 9 level(s) found, first bitrate: 5742646 hls.mjs:25649:13
[log] > setting initial bwe to 5000000 hls.mjs:6960:13
[log] > [buffer-controller] 2 bufferCodec event(s) expected hls.mjs:17809:9
[log] > Setting autoLevelCapping to 8: 1080p@5742646 for media 1439x556 hls.mjs:21695:17
[log] > set autoLevelCapping:8 hls.mjs:28238:13
[log] > startLoad(-1) hls.mjs:27981:11
[log] > [abr] picked start tier {"codecSet":"avc1,mp4a","videoRanges":["SDR"],"preferHDR":false,"minFramerate":25,"minBitrate":535777} hls.mjs:7345:13
[info] > [abr] switch candidate:8->5 adjustedbw(5000000)-bitrate=2862189 ttfb:0.1 avgDuration:0.0 maxFetchDuration:4.0 fetchDuration:0.1 firstSelection:true codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:-1 hls.mjs:7422:17
[log] > [level-controller]: Switching to level 5 (720p SDR avc1,mp4a @2137811) from level -1 hls.mjs:25725:9
[log] > [audio-track-controller]: Updating audio tracks, 2 track(s) found in group(s): a-1 hls.mjs:16544:11
[log] > [audio-track-controller]: Switching to audio-track 0 "Deutsch (5.1)" lang:de group:a-1 channels:6 hls.mjs:16650:9
[log] > [audio-stream-controller]: Reset loading state hls.mjs:10212:9
[log] > [audio-stream-controller]: STOPPED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: IDLE->WAITING_TRACK hls.mjs:10322:11
[log] > [subtitle-track-controller]: Updating subtitle tracks, 2 track(s) found in "s-0" group-id hls.mjs:17353:11
[log] > [level-controller]: Loading level index 5 with {URL_HIDDEN} hls.mjs:25860:11
[log] > [stream-controller]: STOPPED->IDLE hls.mjs:10322:11
[log] > [audio-track-controller]: loading audio-track playlist 0 "Deutsch (5.1)" lang:de group:a-1 hls.mjs:16724:11
[log] > [audio-stream-controller]: WAITING_TRACK->STOPPED hls.mjs:10322:11
[log] > [audio-stream-controller]: STOPPED->WAITING_TRACK hls.mjs:10322:11
[log] > [subtitle-stream-controller]: STOPPED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Level 5 loaded [0,1144][part-1144--1], cc [0, 0] duration:4578.56 hls.mjs:27024:9
[log] > [buffer-controller] Updating Media Source duration to 4578.560 hls.mjs:18366:11
[log] > [stream-controller]: Loading fragment initSegment cc: 0 of [0-1144] level: 5, target: 0 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Loading key for 0 of [0-1144], level 5 hls.mjs:9502:11
[log] > [stream-controller]: IDLE->KEY_LOADING hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 0 cc: 0 of [0-1144] level: 5, target: 0 hls.mjs:9562:9
[log] > [stream-controller]: KEY_LOADING->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-track-controller]: Audio track 0 "Deutsch (5.1)" lang:de group:a-1 loaded [0-1144] hls.mjs:16483:9
[log] > [audio-stream-controller]: Audio track 0 loaded [0,1144][part-1144--1],duration:4578.6382440000925 hls.mjs:16032:9
[log] > [audio-stream-controller]: WAITING_TRACK->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 of [0-1144] track: 0, target: 0 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading key for 0 of [0-1144], track 0 hls.mjs:9502:11
[log] > [audio-stream-controller]: IDLE->KEY_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 0 cc: 0 of [0-1144] track: 0, target: 0 hls.mjs:9562:9
[log] > [audio-stream-controller]: KEY_LOADING->FRAG_LOADING hls.mjs:10322:11
[log] > [transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 5 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
        initSegmentChange: true hls.mjs:15464:13
[log] > [decrypter]: JS AES decrypt hls.mjs:9037:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 0 of level 5 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 0 of level 5 hls.mjs:14794:11
[log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640029/avc1.4D4028] hls.mjs:27570:11
[log] > [buffer-controller] 1 bufferCodec event(s) expected video hls.mjs:17974:11
[log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 0 hls.mjs:15713:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [transmuxer-interface, audio]: Starting new transmux session for sn: 0 p: -1 level: 0 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 0
        initSegmentChange: true hls.mjs:15464:13
[log] > [decrypter]: JS AES decrypt hls.mjs:9037:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 0 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 0 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: Init audio buffer, container:audio/mp4, codecs[level/parsed]=[mp4a.40.2/mp4a.40.2] hls.mjs:16349:9
[log] > [buffer-controller] 0 bufferCodec event(s) expected audio hls.mjs:17974:11
[log] > [buffer-controller] creating sourceBuffer(video/mp4;codecs=avc1.640029) hls.mjs:18440:13
[log] > [buffer-controller] creating sourceBuffer(audio/mp4;codecs=mp4a.40.2) hls.mjs:18440:13
[log] > [stream-controller]: Alternate track found, use video.buffered to schedule main fragment loading hls.mjs:27178:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 0 of level 5 (frag:[0.000-4.000] > buffer:[0.080-4.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[info] > [abr] switch candidate:5->8 adjustedbw(13262592)-bitrate=7519946 ttfb:0.1 avgDuration:4.0 maxFetchDuration:4.1 fetchDuration:1.9 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:5 hls.mjs:7422:17
[log] > [stream-controller]: Adapting to level 8 from level 5 hls.mjs:26744:11
[log] > [level-controller]: Switching to level 8 (1080p SDR avc1,mp4a @5742646) from level 5 hls.mjs:25725:9
[log] > [level-controller]: Loading level index 8 with {URL_HIDDEN} hls.mjs:25860:11
[log] > [stream-controller]: IDLE->WAITING_LEVEL hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 0 of track 0 (frag:[0.000-4.017] > buffer:[0.000-4.017]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 1 cc: 0 of [0-1144] track: 0, target: 4.017 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: media seeking to 1056.000, state: WAITING_LEVEL hls.mjs:9207:9
[log] > [audio-stream-controller]: media seeking to 1056.000, state: FRAG_LOADING hls.mjs:9207:9
[log] > [audio-stream-controller]: seeking outside of buffer while fragment load in progress, cancel fragment load hls.mjs:9221:17
[log] > [audio-stream-controller]: Reset loading state hls.mjs:10212:9
[log] > [audio-stream-controller]: FRAG_LOADING->IDLE hls.mjs:10322:11
[warn] > [audio-stream-controller]: Fragment 1 of level 0 was aborted hls.mjs:10095:11
[log] > [subtitle-stream-controller]: media seeking to 1056.000, state: IDLE hls.mjs:9207:9
[info] > [abr] buffer is empty, optimal quality level 8 hls.mjs:7283:11
[log] > [audio-stream-controller]: Loading fragment 264 cc: 0 of [0-1144] track: 0, target: 1056.02 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[info] > [abr] buffer is empty, optimal quality level 8 hls.mjs:7283:11
[log] > [stream-controller]: Level 8 loaded [0,1144][part-1144--1], cc [0, 0] duration:4578.56 hls.mjs:27024:9
[log] > [stream-controller]: WAITING_LEVEL->IDLE hls.mjs:10322:11
[info] > [abr] buffer is empty, optimal quality level 8 hls.mjs:7283:11
[log] > [stream-controller]: Loading fragment initSegment cc: 0 of [0-1144] level: 8, target: 0 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->IDLE hls.mjs:10322:11
[info] > [abr] buffer is empty, optimal quality level 8 hls.mjs:7283:11
[log] > [stream-controller]: Loading key for 264 of [0-1144], level 8 hls.mjs:9502:11
[log] > [stream-controller]: IDLE->KEY_LOADING hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 264 cc: 0 of [0-1144] level: 8, target: 1056 hls.mjs:9562:9
[log] > [stream-controller]: KEY_LOADING->FRAG_LOADING hls.mjs:10322:11
[log] > [transmuxer-interface, audio]: Starting new transmux session for sn: 264 p: -1 level: 0 id: 1
        discontinuity: false
        trackSwitch: false
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 1056.020268154196
        initSegmentChange: false hls.mjs:15464:13
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 264 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 264 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 264 of track 0 (frag:[1056.020-1060.014] > buffer:[0.000-4.017][1056.020-1060.014]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [transmuxer-interface, main]: Starting new transmux session for sn: 264 p: -1 level: 8 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 1056
        initSegmentChange: true hls.mjs:15464:13
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 264 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 264 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640029/avc1.640029] hls.mjs:27570:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 264 of level 8 (frag:[1056.000-1060.000] > buffer:[0.080-4.080][1056.080-1060.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 265 cc: 0 of [0-1144] level: 8, target: 1060.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: Media seeked to 1056.000 hls.mjs:26959:11
[log] > [buffer-controller] Removing [0,1045.6679825327512] from the video SourceBuffer hls.mjs:18544:11
[log] > [buffer-controller] Removing [0,1045.6679825327512] from the audio SourceBuffer hls.mjs:18544:11
[log] > [audio-stream-controller]: Loading fragment 265 cc: 0 of [0-1144] track: 0, target: 1060.014 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 265 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 265 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 265 of track 0 (frag:[1060.014-1064.008] > buffer:[1056.020-1064.008]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 266 cc: 0 of [0-1144] track: 0, target: 1064.008 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 265 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 265 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 265 of level 8 (frag:[1060.000-1064.000] > buffer:[1056.080-1064.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 266 cc: 0 of [0-1144] level: 8, target: 1064.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 266 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 266 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 266 of track 0 (frag:[1064.008-1068.002] > buffer:[1056.020-1068.002]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 266 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 266 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 266 of level 8 (frag:[1064.000-1068.000] > buffer:[1056.080-1068.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 267 cc: 0 of [0-1144] track: 0, target: 1068.002 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 267 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 267 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 267 of track 0 (frag:[1068.002-1072.019] > buffer:[1056.020-1072.019]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: media seeking to 1056.000, state: IDLE hls.mjs:9207:9
[log] > [audio-stream-controller]: media seeking to 1056.000, state: IDLE hls.mjs:9207:9
[log] > [subtitle-stream-controller]: media seeking to 1056.000, state: IDLE hls.mjs:9207:9
[log] > [stream-controller]: Media seeked to 1056.000 hls.mjs:26959:11
[warn] > skipping hole, adjusting currentTime from 1056 to 1056.1299999999999 hls.mjs:26479:15
[log] > [stream-controller]: media seeking to 1056.130, state: IDLE hls.mjs:9207:9
[log] > [audio-stream-controller]: media seeking to 1056.130, state: IDLE hls.mjs:9207:9
[log] > [subtitle-stream-controller]: media seeking to 1056.130, state: IDLE hls.mjs:9207:9
[log] > [stream-controller]: Media seeked to 1056.130 hls.mjs:26959:11
[log] > [stream-controller]: Loading fragment 267 cc: 0 of [0-1144] level: 8, target: 1068.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 267 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 267 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 267 of level 8 (frag:[1068.000-1072.000] > buffer:[1056.080-1072.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 268 cc: 0 of [0-1144] track: 0, target: 1072.019 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 268 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 268 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 268 of track 0 (frag:[1072.019-1076.013] > buffer:[1056.020-1076.013]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 268 cc: 0 of [0-1144] level: 8, target: 1072.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 268 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 268 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 268 of level 8 (frag:[1072.000-1076.000] > buffer:[1056.080-1076.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 269 cc: 0 of [0-1144] track: 0, target: 1076.013 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 269 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 269 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 269 of track 0 (frag:[1076.013-1080.007] > buffer:[1056.020-1080.007]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 269 cc: 0 of [0-1144] level: 8, target: 1076.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 269 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 269 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 269 of level 8 (frag:[1076.000-1080.000] > buffer:[1056.080-1080.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 270 cc: 0 of [0-1144] track: 0, target: 1080.007 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 270 of level 0 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 270 of level 0 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 270 of track 0 (frag:[1080.007-1084.000] > buffer:[1056.020-1084.000]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [buffer-controller] Removing [0,1057.664209606987] from the video SourceBuffer hls.mjs:18544:11
[log] > [buffer-controller] Removing [0,1057.664209606987] from the audio SourceBuffer hls.mjs:18544:11
[log] > [audio-track-controller]: Switching to audio-track 1 "中国人 (Stereo)" lang:zh group:a-1 channels:2 hls.mjs:16650:9
[log] > [audio-stream-controller]: Reset loading state hls.mjs:10212:9
[log] > [audio-stream-controller]: Switching audio track : flushing all audio hls.mjs:16403:11
[log] > [buffer-controller] Removing [0,4578.56] from the audio SourceBuffer hls.mjs:18544:11
[log] > [audio-stream-controller]: IDLE->WAITING_TRACK hls.mjs:10322:11
[log] > [audio-track-controller]: loading audio-track playlist 1 "中国人 (Stereo)" lang:zh group:a-1 hls.mjs:16724:11
[log] > [stream-controller]: Loading fragment 270 cc: 0 of [0-1144] level: 8, target: 1080.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-track-controller]: Audio track 1 "中国人 (Stereo)" lang:zh group:a-1 loaded [0-1144] hls.mjs:16483:9
[log] > [audio-stream-controller]: Audio track 1 loaded [0,1144][part-1144--1],duration:4578.6382440000925 hls.mjs:16032:9
[log] > [audio-stream-controller]: WAITING_TRACK->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment initSegment cc: 0 of [0-1144] track: 1, target: 0 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading key for 267 of [0-1144], track 1 hls.mjs:9502:11
[log] > [audio-stream-controller]: IDLE->KEY_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 267 cc: 0 of [0-1144] track: 1, target: 1070.55 hls.mjs:9562:9
[log] > [audio-stream-controller]: KEY_LOADING->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 270 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 270 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 270 of level 8 (frag:[1080.000-1084.000] > buffer:[1060.080-1084.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [transmuxer-interface, audio]: Starting new transmux session for sn: 267 p: -1 level: 1 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: false
        timeOffset: 1068.0017640000012
        initSegmentChange: true hls.mjs:15464:13
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 267 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 267 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: Init audio buffer, container:audio/mp4, codecs[level/parsed]=[mp4a.40.2/mp4a.40.2] hls.mjs:16349:9
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 267 of track 1 (frag:[1068.002-1072.019] > buffer:[1068.002-1072.019]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 268 cc: 0 of [0-1144] track: 1, target: 1072.019 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [buffer-controller] Removing [0,1061.6629519650655] from the video SourceBuffer hls.mjs:18544:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 268 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 268 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 268 of track 1 (frag:[1072.019-1076.013] > buffer:[1068.002-1076.013]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 269 cc: 0 of [0-1144] track: 1, target: 1076.013 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 269 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 269 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 269 of track 1 (frag:[1076.013-1080.007] > buffer:[1068.002-1080.007]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 270 cc: 0 of [0-1144] track: 1, target: 1080.007 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 270 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 270 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 270 of track 1 (frag:[1080.007-1084.000] > buffer:[1068.002-1084.000]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 271 cc: 0 of [0-1144] track: 1, target: 1084 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: Loading fragment 271 cc: 0 of [0-1144] level: 8, target: 1084.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 271 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 271 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 271 of track 1 (frag:[1084.000-1088.017] > buffer:[1068.002-1088.017]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 271 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 271 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 271 of level 8 (frag:[1084.000-1088.000] > buffer:[1064.080-1088.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 272 cc: 0 of [0-1144] track: 1, target: 1088.017 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 272 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 272 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 272 of track 1 (frag:[1088.017-1092.011] > buffer:[1068.002-1092.011]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [buffer-controller] Removing [0,1065.661694323144] from the video SourceBuffer hls.mjs:18544:11
[log] > [stream-controller]: Loading fragment 272 cc: 0 of [0-1144] level: 8, target: 1088.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 272 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 272 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 272 of level 8 (frag:[1088.000-1092.000] > buffer:[1068.080-1092.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 273 cc: 0 of [0-1144] track: 1, target: 1092.011 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[warn] > Playback stalling at @1078.837777 due to low buffer ({"len":13.173469999999952,"start":1068.08,"end":1092.011247}) hls.mjs:26411:13
HLS.js error: mediaError - fatal: false - bufferStalledError hlsjs-bridge.js:72:14
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 273 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 273 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 273 of track 1 (frag:[1092.011-1096.005] > buffer:[1068.002-1096.005]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[warn] > playback not stuck anymore @1078.865034, after 1040ms hls.mjs:26276:17
[log] > [buffer-controller] Removing [0,1069.6604366812228] from the video SourceBuffer hls.mjs:18544:11
[log] > [buffer-controller] Removing [0,1069.6604366812228] from the audio SourceBuffer hls.mjs:18544:11
[warn] > Playback stalling at @1080.169047 due to low buffer ({"len":11.910952999999836,"start":1072.08,"end":1092.08}) hls.mjs:26411:13
HLS.js error: mediaError - fatal: false - bufferStalledError hlsjs-bridge.js:72:14
[warn] > Trying to nudge playhead over buffer-hole hls.mjs:26387:13
[warn] > Nudging 'currentTime' from 1080.169047 to 1080.269047 hls.mjs:26520:13
HLS.js error: mediaError - fatal: false - bufferNudgeOnStall hlsjs-bridge.js:72:14
[log] > [stream-controller]: media seeking to 1080.269, state: IDLE hls.mjs:9207:9
[log] > [audio-stream-controller]: media seeking to 1080.269, state: IDLE hls.mjs:9207:9
[log] > [subtitle-stream-controller]: media seeking to 1080.269, state: IDLE hls.mjs:9207:9
[log] > [stream-controller]: Media seeked to 1080.269 hls.mjs:26959:11
[warn] > playback not stuck anymore @1080.309091, after 80ms hls.mjs:26276:17
[log] > [stream-controller]: Loading fragment 273 cc: 0 of [0-1144] level: 8, target: 1092.08 hls.mjs:9562:9
[log] > [stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [stream-controller]: Loaded fragment 273 of level 8 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 273 of level 8 hls.mjs:14794:11
[log] > [stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [stream-controller]: Buffered main sn: 273 of level 8 (frag:[1092.000-1096.000] > buffer:[1072.080-1096.080]) hls.mjs:9446:9
[log] > [stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [audio-stream-controller]: Loading fragment 274 cc: 0 of [0-1144] track: 1, target: 1096.005 hls.mjs:9562:9
[log] > [audio-stream-controller]: IDLE->FRAG_LOADING hls.mjs:10322:11
[log] > [audio-stream-controller]: FRAG_LOADING->PARSING hls.mjs:10322:11
[log] > [audio-stream-controller]: Loaded fragment 274 of level 1 hls.mjs:9299:13
[log] > [transmuxer.ts]: Flushed fragment 274 of level 1 hls.mjs:14794:11
[log] > [audio-stream-controller]: PARSING->PARSED hls.mjs:10322:11
[log] > [audio-stream-controller]: Buffered audio sn: 274 of track 1 (frag:[1096.005-1100.022] > buffer:[1069.674-1100.022]) hls.mjs:9446:9
[log] > [audio-stream-controller]: PARSED->IDLE hls.mjs:10322:11
[log] > [buffer-controller] Removing [0,1073.6591790393013] from the video SourceBuffer hls.mjs:18544:11
[log] > [buffer-controller] Removing [0,1073.6591790393013] from the audio SourceBuffer hls.mjs:18544:11
Stream Paused`

Chrome media internals output

No response

@lindenb1 lindenb1 added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Jun 15, 2024
@robwalch
Copy link
Collaborator

Calling detachMedia, attachMedia, and then seeking to the last playback position will create a new MediaSource for the alternate channel setup. Calling recoverMediaError does the same thing.

@robwalch robwalch added Suggested-Workaround Browser issue If there is an underlying issue with the browser that hls.js is running on, this tag should be used. and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Jun 15, 2024
@lindenb1
Copy link
Author

@robwalch Not sure what you want to point out here, How to fix this? Previously i dont had these issues.

@robwalch
Copy link
Collaborator

Is this issue a regression? In what version of HLS.js does it work?

The comments suggest it is an issue with Ubuntu 24.04, and which uses PulseAudio.

I suggested a workaround you could try on switch to reset the media source which may prevent playback from regressing after changing the audio audio type.

@lindenb1
Copy link
Author

lindenb1 commented Jun 15, 2024

@robwalch Well I'm still not sure if this has anything to do with hls.js, since I have Ubuntu 24.04 I have this bug ... My code hasn't changed here. Also, not my deps like ffmpeg, which I build my self, so this is all pretty static and, as mentioned, unchanged.

The situation really does not make a lot of sense to me. At least not from hls.js perspective ... But no idea what might have changed in the meantime on Canonical's side. I also tried PulsAudio instead of PipeWire, same situation.

@lindenb1
Copy link
Author

lindenb1 commented Jun 15, 2024

Appears to be a Firefox issue. 123 behaves differently to 127, also faulty, but differently faulty, chrome is working fine for some reason...

@lindenb1
Copy link
Author

lindenb1 commented Jun 16, 2024

I now created a HLS structure for testing. @robwalch Can you maybe check on your end if you have the same issue using FireFox? On Chrome, I don't have this at all...

The file can be obtained here (HLS structure + input mp4 file):

https://drive.google.com/file/d/1tcqwS2KPm2hcDtI10RL8WfydEifO3H_5/view?usp=drive_link

I also created a Bug report on Mozilla side:

https://bugzilla.mozilla.org/show_bug.cgi?id=1902901

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
browser: Firefox Browser issue If there is an underlying issue with the browser that hls.js is running on, this tag should be used. Bug Suggested-Workaround
Projects
None yet
Development

No branches or pull requests

2 participants