Skip to content

Playback freezes when switching videos with same configuration #7114

@daveisfera

Description

@daveisfera

What version of Hls.js are you using?

1.5.20

What browser (including version) are you using?

Chrome 134.0.6998.118 (Official Build) (x86_64)

What OS (including version) are you using?

macOS 15.3.2

Test stream

https://raw.githubusercontent.com/daveisfera/hls_switch_same_init/9ee116765e3296abc01cd3e530623321336d7755/video.m3u8

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 90
}

Additional player setup steps

Using demo page

Checklist

Steps to reproduce

  1. Play above link on demo page
  2. Observe error output

Expected behaviour

Video plays through the switch

What actually happened?

Playback pauses when switch happens

Console output

9.194 | Media element detached
9.195 | Loading https://raw.githubusercontent.com/daveisfera/hls_switch_same_init/9ee116765e3296abc01cd3e530623321336d7755/video.m3u8
9.197 | Loading manifest and attaching video element...
9.204 | Media element attached
9.37 | 1 quality levels found
9.371 | Manifest successfully loaded, trying to recover media error.
13.532 | Media element detached
13.535 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: Error Domain=NSOSStatusErrorDomain Code=-17694 "(null)" (-17694): VTDecompressionOutputCallback
13.541 | Media element attached, trying to swap audio codec and recover media error.
13.833 | Media element detached
13.836 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: Error Domain=NSOSStatusErrorDomain Code=-17694 "(null)" (-17694): VTDecompressionOutputCallback
13.844 | Media element attached, cannot recover. Last media error recovery failed.
14.134 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: Error Domain=NSOSStatusErrorDomain Code=-17694 "(null)" (-17694): VTDecompressionOutputCallback

Chrome media internals output

{
  "465:4": {
    "id": "465:4",
    "properties": {
      "render_id": 465,
      "player_id": 4,
      "created": "2025-03-21 04:23:19.134592 UTC",
      "origin_url": "https://videojs-http-streaming.netlify.app/",
      "kFrameUrl": "https://videojs-http-streaming.netlify.app/?debug=false&autoplay=false&muted=false&fluid=false&minified=false&sync-workers=false&liveui=true&llhls=true&url=https%3A%2F%2Fraw.githubusercontent.com%2Fdaveisfera%2Fhls_switch_same_init%2F9ee116765e3296abc01cd3e530623321336d7755%2Fsecond.m3u8&type=application%2Fx-mpegURL&keysystems=&buffer-water=false&exact-manifest-timings=false&pixel-diff-selector=false&network-info=true&dts-offset=false&override-native=true&object-fit=false&use-mms=true&preload=auto&mirror-source=true&forced-subtitles=false&native-text-tracks=false",
      "kFrameTitle": "videojs-http-streaming Demo",
      "url": "blob:https://videojs-http-streaming.netlify.app/57b3ff4c-c88e-4d97-82f0-868c0d5dbd94",
      "info": "ChunkDemuxer",
      "kRendererName": "RendererImpl",
      "pipeline_state": "kStarting",
      "duration": 4.005
    },
    "allEvents": [
      {
        "time": 0,
        "key": "created",
        "value": "2025-03-21 04:23:19.134592 UTC"
      },
      {
        "time": 0.08300000429153442,
        "key": "origin_url",
        "value": "https://videojs-http-streaming.netlify.app/"
      },
      {
        "time": 0.0910000205039978,
        "key": "kFrameUrl",
        "value": "https://videojs-http-streaming.netlify.app/?debug=false&autoplay=false&muted=false&fluid=false&minified=false&sync-workers=false&liveui=true&llhls=true&url=https%3A%2F%2Fraw.githubusercontent.com%2Fdaveisfera%2Fhls_switch_same_init%2F9ee116765e3296abc01cd3e530623321336d7755%2Fsecond.m3u8&type=application%2Fx-mpegURL&keysystems=&buffer-water=false&exact-manifest-timings=false&pixel-diff-selector=false&network-info=true&dts-offset=false&override-native=true&object-fit=false&use-mms=true&preload=auto&mirror-source=true&forced-subtitles=false&native-text-tracks=false"
      },
      {
        "time": 0.09500002861022949,
        "key": "kFrameTitle",
        "value": "videojs-http-streaming Demo"
      },
      {
        "time": 0.14899998903274536,
        "key": "url",
        "value": "blob:https://videojs-http-streaming.netlify.app/57b3ff4c-c88e-4d97-82f0-868c0d5dbd94"
      },
      {
        "time": 0.17599999904632568,
        "key": "info",
        "value": "ChunkDemuxer"
      },
      {
        "time": 0.18599998950958252,
        "key": "kRendererName",
        "value": "RendererImpl"
      },
      {
        "time": 0.2200000286102295,
        "key": "pipeline_state",
        "value": "kStarting"
      },
      {
        "time": 178.13499999046326,
        "key": "duration",
        "value": 4.005
      }
    ],
    "lastRendered": 0,
    "firstTimestamp_": 307161374.866
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions