Skip to content

Airplay streaming issue on ios #6482

Description

@tvinko

What version of Hls.js are you using?

v1.5.11

What browser (including version) are you using?

Safari 17.5.1

What OS (including version) are you using?

IOS

Test stream

https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fvz-b1d0f3b4-139.flufflecdn.net%2Fb13f6bba-728f-4fd3-88b4-ad8eb276976b%2Fplaylist.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Configuration

{
    debug: true,
    enableWorker: true,
    lowLatencyMode: true,
    backBufferLength: 90,
    preferManagedMediaSource: false,
}

Additional player setup steps

No response

Checklist

Steps to reproduce

  1. Host the following html snippet locally
<!DOCTYPE html>
<html>

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.11/hls.min.js"
        integrity="sha512-Z0W3S5swMoBWjkNBP3ACbXA4mh/jdjJOTOOZfF1yIO0OdkIU373s/Tm+eaCbUQq7EEgKl9O1eji1ZgseHCUVgw=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>

<body id="body">
    <video id="video" controls x-webkit-airplay="allow"></video>

    <script>
        var useHls = true;
        var autoplay = false;

        var urlPlaylistUrl =
            "https://vz-b1d0f3b4-139.flufflecdn.net/b13f6bba-728f-4fd3-88b4-ad8eb276976b/playlist.m3u8";

        var video = document.getElementById("video");

        video.controls = true;
        video.loop = true;
        video.muted = true;
        video.autoplay = autoplay;
        video.src = urlPlaylistUrl;

        if (useHls) {
            var hls = new Hls({
                debug: true,
                enableWorker: true,
                lowLatencyMode: true,
                backBufferLength: 90,
                preferManagedMediaSource: false,
            });

            hls.on(Hls.Events.MEDIA_ATTACHED, function () {
                console.log("video and hls.js are now bound together !");
            });

            hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
                console.log(
                    "manifest loaded, found " + data.levels.length + " quality level"
                );
            });
            hls.loadSource(urlPlaylistUrl);

            hls.attachMedia(video);

            var airPlaySrc = document.createElement("source");
            airPlaySrc.src = urlPlaylistUrl;
            video.appendChild(airPlaySrc);
            video.disableRemotePlayback = false;
        }
    </script>
</body>

</html>
  1. Connect with iPhone client
  2. Select Airplay option
  3. Select streaming destination

Expected behaviour

Airplay should be streamed to selected destination

What actually happened?

The Airplay is not streamed with a given configuration.

However, I can stream if I enable autoplay:

var useHls = true;
var autoplay = true;

or if I use native hls:

var useHls = false;
var autoplay = false;

Console output

[Log] [log] >"Debug logs enabled for \"Hls instance\" in hls.js version 1.5.11" (hls.min.js, line 1)
[Log] [log] >"stopLoad" (hls.min.js, line 1)
[Log] [log] >"loadSource:https://vz-b1d0f3b4-139.flufflecdn.net/b13f6bba-728f-4fd3-88b4-ad8eb276976b/playlist.m3u8" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Trigger BUFFER_RESET" (hls.min.js, line 1)
[Log] [log] >"attachMedia" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""created media source: ManagedMediaSource" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Media source opened" (hls.min.js, line 1)
[Log] video and hls.js are now bound together ! (test2.html, line 38)
[Log] [log] >"[level-controller]:""manifest loaded, 5 level(s) found, first bitrate: 1419909" (hls.min.js, line 1)
[Log] [log] >"setting initial bwe to 1419909" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""1 bufferCodec event(s) expected" (hls.min.js, line 1)
[Log] manifest loaded, found 5 quality level (test2.html, line 42)
[Log] [log] >"startLoad(-1)" (hls.min.js, line 1)
[Log] [log] >"[abr] picked start tier {\"codecSet\":\"avc1,mp4a\",\"videoRanges\":[\"SDR\"],\"preferHDR\":false,\"minFramerate\":0,\"minBitrate\":1073607}" (hls.min.js, line 1)
[Info] [info] >"[abr] switch candidate:1->1 adjustedbw(1419909)-bitrate=0 ttfb:0.1 avgDuration:0.0 maxFetchDuration:4.0 fetchDuration:0.…" (hls.min.js, line 1)
"[abr] switch candidate:1->1 adjustedbw(1419909)-bitrate=0 ttfb:0.1 avgDuration:0.0 maxFetchDuration:4.0 fetchDuration:0.1 firstSelection:true codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:-1"
[Log] [log] >"[level-controller]:""Switching to level 1 (360p SDR avc1,mp4a @1419909) from level -1" (hls.min.js, line 1)
[Log] [log] >"[level-controller]:""Loading level index 1 with https://vz-b1d0f3b4-139.flufflecdn.net/b13f6bba-728f-4fd3-88b4-ad8eb276976b/360p/video.m3u8" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""STOPPED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[subtitle-stream-controller]:""STOPPED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Level 1 loaded [0,13][part-13--1], cc [0, 0] duration:52.208333" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Updating Media Source duration to 52.208" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 0 cc: 0 of [0-13] level: 1, target: 0" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"injecting Web Worker for \"main\"" (hls.min.js, line 1)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 1 id: 1↵        discontinuity: true↵        trackSwitch…" (hls.min.js, line 1)
"[transmuxer-interface, main]: Starting new transmux session for sn: 0 p: -1 level: 1 id: 1
        discontinuity: true
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 0
        initSegmentChange: true"
[Log] [log] >"[stream-controller]:""Loaded fragment 0 of level 1" (hls.min.js, line 1)
[Log] [log] >"Debug logs enabled for \"main\" in hls.js version 1.5.11" (5ca39030-38ae-4e1c-b4b7-59ee97a13aad, line 1)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.min.js, line 1)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.min.js, line 1)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.min.js, line 1)
[Log] [log] >"manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:3" (hls.min.js, line 1)
[Log] [log] >"parsed codec:mp4a.40.5, rate:48000, channels:2" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.64001e/avc1.64001e]" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""0 bufferCodec event(s) expected audio,video" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""creating sourceBuffer(video/mp4;codecs=avc1.64001e)" (hls.min.js, line 1)
[Log] [log] >"[audio-stream-controller]:""InitPTS for cc: 0 found from main: 133500" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 0 of level 1" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 0 of level 1 (frag:[0.000-4.000] > buffer:[0.000-3.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Info] [info] >"[abr] switch candidate:1->4 adjustedbw(23077376)-bitrate=14884866 ttfb:0.0 avgDuration:4.0 maxFetchDuration:3.9 fetchDuration:1.…" (hls.min.js, line 1)
"[abr] switch candidate:1->4 adjustedbw(23077376)-bitrate=14884866 ttfb:0.0 avgDuration:4.0 maxFetchDuration:3.9 fetchDuration:1.5 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:1"
[Log] [log] >"[stream-controller]:""Adapting to level 4 from level 1" (hls.min.js, line 1)
[Log] [log] >"[level-controller]:""Switching to level 4 (1080p SDR avc1,mp4a @8192510) from level 1" (hls.min.js, line 1)
[Log] [log] >"[level-controller]:""Loading level index 4 with https://vz-b1d0f3b4-139.flufflecdn.net/b13f6bba-728f-4fd3-88b4-ad8eb276976b/1080p/video.m3u8" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->WAITING_LEVEL" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Level 4 loaded [0,13][part-13--1], cc [0, 0] duration:52.208333" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""WAITING_LEVEL->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 1 cc: 0 of [0-13] level: 4, target: 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 4 id: 1↵        discontinuity: false↵      …" (hls.min.js, line 1)
"[transmuxer-interface, main]: Starting new transmux session for sn: 1 p: -1 level: 4 id: 1
        discontinuity: false
        trackSwitch: true
        contiguous: false
        accurateTimeOffset: true
        timeOffset: 4
        initSegmentChange: false"
[Log] [log] >"[stream-controller]:""Loaded fragment 1 of level 4" (hls.min.js, line 1)
[Log] [log] >"[mp4-remuxer]: ISGenerated flag reset" (hls.min.js, line 1)
[Log] [log] >"[mp4-remuxer]: initPTS & initDTS reset" (hls.min.js, line 1)
[Log] [log] >"[mp4-remuxer]: reset next timestamp" (hls.min.js, line 1)
[Log] [log] >"manifest codec:mp4a.40.2, ADTS type:2, samplingIndex:3" (hls.min.js, line 1)
[Log] [log] >"parsed codec:mp4a.40.5, rate:48000, channels:2" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2/mp4a.40.2/mp4a.40.5]" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Init video buffer, container:video/mp4, codecs[level/parsed]=[avc1.640028/avc1.640028]" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""changing audio sourceBuffer type to audio/mp4;codecs=mp4a.40.5" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""switching codec mp4a.40.2 to mp4a.40.5" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 1 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 1 of level 4 (frag:[3.925-8.000] > buffer:[0.000-7.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 2 cc: 0 of [0-13] level: 4, target: 7.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 2 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 2 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 2 of level 4 (frag:[7.936-12.000] > buffer:[0.000-11.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 3 cc: 0 of [0-13] level: 4, target: 11.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 3 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 3 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 3 of level 4 (frag:[11.925-16.000] > buffer:[0.000-15.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 4 cc: 0 of [0-13] level: 4, target: 15.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 4 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 4 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 4 of level 4 (frag:[15.936-20.000] > buffer:[0.000-19.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 5 cc: 0 of [0-13] level: 4, target: 19.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 5 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 5 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 5 of level 4 (frag:[19.925-24.000] > buffer:[0.000-23.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 6 cc: 0 of [0-13] level: 4, target: 23.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 6 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 6 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 6 of level 4 (frag:[23.936-28.000] > buffer:[0.000-27.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 7 cc: 0 of [0-13] level: 4, target: 27.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 7 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 7 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 7 of level 4 (frag:[27.925-32.000] > buffer:[0.000-31.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 8 cc: 0 of [0-13] level: 4, target: 31.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 8 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 8 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 8 of level 4 (frag:[31.936-36.000] > buffer:[0.000-35.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 9 cc: 0 of [0-13] level: 4, target: 35.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 9 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 9 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 9 of level 4 (frag:[35.925-40.000] > buffer:[0.000-39.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 10 cc: 0 of [0-13] level: 4, target: 39.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 10 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 10 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 10 of level 4 (frag:[39.936-44.000] > buffer:[0.000-43.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 11 cc: 0 of [0-13] level: 4, target: 43.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 11 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 11 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 11 of level 4 (frag:[43.925-48.000] > buffer:[0.000-47.936])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 12 cc: 0 of [0-13] level: 4, target: 47.936" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 12 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 12 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 12 of level 4 (frag:[47.936-52.000] > buffer:[0.000-51.925])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loading fragment 13 cc: 0 of [0-13] level: 4, target: 51.925" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->FRAG_LOADING" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Loaded fragment 13 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""FRAG_LOADING->PARSING" (hls.min.js, line 1)
[Log] [log] >"[transmuxer.ts]: Flushed fragment 13 of level 4" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSING->PARSED" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""Buffered main sn: 13 of level 4 (frag:[51.925-52.245] > buffer:[0.000-52.208])" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""PARSED->IDLE" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""audio sourceBuffer now EOS" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""video sourceBuffer now EOS" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Queueing mediaSource.endOfStream()" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""IDLE->ENDED" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Calling mediaSource.endOfStream()" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Media source ended" (hls.min.js, line 1)
[Log] [log] >"[buffer-controller]""Media source closed" (hls.min.js, line 1)
[Log] [log] >"[stream-controller]:""ENDED->STOPPED" (hls.min.js, line 1)
[Log] [log] >"[subtitle-stream-controller]:""IDLE->STOPPED" (hls.min.js, line 1)

Chrome media internals output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Browser issueIf there is an underlying issue with the browser that hls.js is running on, this tag should be used.Documentationbrowser: Safari

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions