video-dev / hls.js

HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
https://hlsjs.video-dev.org/demo
Other
14.71k stars 2.57k forks source link

AQUOS, Arrows: Playback Issue: 'appendBuffer' on 'SourceBuffer' execution error #5585

Open yuta-n-play opened 1 year ago

yuta-n-play commented 1 year ago

What version of Hls.js are you using?

v1.4.6

What browser (including version) are you using?

Chrome (114.0.5735.131)

What OS (including version) are you using?

Android 12

Test stream

hls.js demo page ( https://hlsjs.video-dev.org/demo/ )

Configuration

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

Additional player setup steps

No response

Checklist

Steps to reproduce

  1. Open hls.js demo page (https://hlsjs.video-dev.org/demo/)
  2. Wait a few tens of seconds

Expected behaviour

Can play

What actually happened?

Get an error and can't play it.

Console output

ain.js:1014 The video could not be loaded, either because the server or network failed or because the format is not supported - DECODER_ERROR_NOT_SUPPORTED: video decoder initialization failed
handleVideoEvent @ main.js:1014
error (async)
addVideoEventListeners @ main.js:938
loadSelectedStream @ main.js:370
(anonymous) @ main.js:225
j @ jquery.min.js:2
fireWith @ jquery.min.js:2
ready @ jquery.min.js:2
I @ jquery.min.js:2
4buffer-helper.ts:169 [log] > failed to get media.buffered DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
    at Function.getBuffered (https://hlsjs.video-dev.org/dist/hls.js:7945:22)
    at Object.onComplete (https://hlsjs.video-dev.org/dist/hls.js:19099:46)
    at BufferController._onSBUpdateEnd (https://hlsjs.video-dev.org/dist/hls.js:19439:17)

all_console.log

Chrome media internals output

{
  "properties": {
    "render_id": 3,
    "player_id": 0,
    "created": "2023-06-21 06:18:58.121 UTC",
    "origin_url": "https://hlsjs.video-dev.org/",
    "kFrameUrl": "https://hlsjs.video-dev.org/demo/",
    "kFrameTitle": "hls.js demo",
    "url": "blob:https://hlsjs.video-dev.org/751e8b57-cb9c-4e2d-bf01-924606794dfd",
    "kTextTracks": [],
    "info": "Cannot select Dav1dVideoDecoder for video decoding",
    "kRendererName": "RendererImpl",
    "pipeline_state": "kStopped",
    "kAudioTracks": [
      {
        "bytes per channel": 2,
        "bytes per frame": 4,
        "channel layout": "STEREO",
        "channels": 2,
        "codec": "aac",
        "codec delay": 0,
        "discard decoder delay": false,
        "encryption scheme": "Unencrypted",
        "has extra data": true,
        "profile": "unknown",
        "sample format": "Signed 16-bit",
        "samples per second": 44100,
        "seek preroll": "0us"
      }
    ],
    "kVideoTracks": [
      {
        "alpha mode": "is_opaque",
        "codec": "h264",
        "coded size": "1280x720",
        "color space": {
          "matrix": "BT709",
          "primaries": "BT709",
          "range": "LIMITED",
          "transfer": "BT709"
        },
        "encryption scheme": "Unencrypted",
        "has extra data": false,
        "hdr metadata": "unset",
        "natural size": "1280x720",
        "orientation": "0°",
        "profile": "h264 high",
        "visible rect": "0,0 1280x720"
      }
    ],
    "kIsAudioDecryptingDemuxerStream": false,
    "kAudioDecoderName": "FFmpegAudioDecoder",
    "kIsPlatformAudioDecoder": false,
    "error": {
      "code": 15,
      "data": {},
      "group": "PipelineStatus",
      "message": "",
      "stack": [
        {
          "file": "media/renderers/video_renderer_impl.cc",
          "line": 303
        }
      ]
    },
    "event": "kWebMediaPlayerDestroyed",
    "duration": 634.584
  },
  "events": [
    {
      "time": 0,
      "key": "created",
      "value": "2023-06-21 06:18:58.121 UTC"
    },
    {
      "time": 0.31499999947845936,
      "key": "origin_url",
      "value": "https://hlsjs.video-dev.org/"
    },
    {
      "time": 0.3179999999701977,
      "key": "kFrameUrl",
      "value": "https://hlsjs.video-dev.org/demo/"
    },
    {
      "time": 0.3200000002980232,
      "key": "kFrameTitle",
      "value": "hls.js demo"
    },
    {
      "time": 0.7580000003799796,
      "key": "url",
      "value": "blob:https://hlsjs.video-dev.org/751e8b57-cb9c-4e2d-bf01-924606794dfd"
    },
    {
      "time": 0.7719999998807907,
      "key": "kTextTracks",
      "value": []
    },
    {
      "time": 0.8319999994710088,
      "key": "info",
      "value": "ChunkDemuxer"
    },
    {
      "time": 0.8470000000670552,
      "key": "kRendererName",
      "value": "RendererImpl"
    },
    {
      "time": 12.986999999731779,
      "key": "pipeline_state",
      "value": "kStarting"
    },
    {
      "time": 381.96299999952316,
      "key": "kAudioTracks",
      "value": [
        {
          "bytes per channel": 2,
          "bytes per frame": 4,
          "channel layout": "STEREO",
          "channels": 2,
          "codec": "aac",
          "codec delay": 0,
          "discard decoder delay": false,
          "encryption scheme": "Unencrypted",
          "has extra data": true,
          "profile": "unknown",
          "sample format": "Signed 16-bit",
          "samples per second": 44100,
          "seek preroll": "0us"
        }
      ]
    },
    {
      "time": 382.11899999994785,
      "key": "kVideoTracks",
      "value": [
        {
          "alpha mode": "is_opaque",
          "codec": "h264",
          "coded size": "1280x720",
          "color space": {
            "matrix": "BT709",
            "primaries": "BT709",
            "range": "LIMITED",
            "transfer": "BT709"
          },
          "encryption scheme": "Unencrypted",
          "has extra data": false,
          "hdr metadata": "unset",
          "natural size": "1280x720",
          "orientation": "0°",
          "profile": "h264 high",
          "visible rect": "0,0 1280x720"
        }
      ]
    },
    {
      "time": 393.16799999959767,
      "key": "kIsAudioDecryptingDemuxerStream",
      "value": false
    },
    {
      "time": 393.1720000002533,
      "key": "kAudioDecoderName",
      "value": "FFmpegAudioDecoder"
    },
    {
      "time": 393.1739999996498,
      "key": "kIsPlatformAudioDecoder",
      "value": false
    },
    {
      "time": 393.195000000298,
      "key": "info",
      "value": "Selected FFmpegAudioDecoder for audio decoding, config: codec: aac, profile: unknown, bytes_per_channel: 2, channel_layout: STEREO, channels: 2, samples_per_second: 44100, sample_format: Signed 16-bit, bytes_per_frame: 4, seek_preroll: 0us, codec_delay: 0, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: false, target_output_channel_layout: STEREO, target_output_sample_format: Unknown sample format, has aac extra data: true"
    },
    {
      "time": 393.2920000003651,
      "key": "info",
      "value": "Cannot select MediaCodecVideoDecoder for video decoding"
    },
    {
      "time": 393.36099999956787,
      "key": "info",
      "value": "Cannot select VpxVideoDecoder for video decoding"
    },
    {
      "time": 393.51699999999255,
      "key": "info",
      "value": "Cannot select Dav1dVideoDecoder for video decoding"
    },
    {
      "time": 393.53099999949336,
      "key": "error",
      "value": "video decoder initialization failed"
    },
    {
      "time": 418.26699999999255,
      "key": "error",
      "value": {
        "code": 15,
        "data": {},
        "group": "PipelineStatus",
        "message": "",
        "stack": [
          {
            "file": "media/renderers/video_renderer_impl.cc",
            "line": 303
          }
        ]
      }
    },
    {
      "time": 418.72499999962747,
      "key": "pipeline_state",
      "value": "kStopping"
    },
    {
      "time": 419.0130000002682,
      "key": "pipeline_state",
      "value": "kStopped"
    },
    {
      "time": 1011.2160000000149,
      "key": "event",
      "value": "kWebMediaPlayerDestroyed"
    },
    {
      "time": 198.0109999999404,
      "key": "duration",
      "value": 634.584
    }
  ]
}

We have seen this error occur in Aquos R6, R7 and Arrows NX9 and not in Pixel 5. And This error seems to occur with H264 high profile content. It did not occur with main profile.

robwalch commented 1 year ago

May be related to https://bugs.chromium.org/p/chromium/issues/detail?id=1458374