Seems to break in all cases where macOS hardware decoding is involved. Using software decoding in an Ubuntu VM, I get a hiccup in the video but nothing fatal. On Windows using NVDEC I get completely clean playback; this is consistent with the original encoder being NVENC.
5.446 | Media element detached 5.449 | Loading https://docs-livepeer-live-cors.livepeer.workers.dev/eli/966061CB-D79D-46A6-996C-699D87FD4D2D/hls-playback-problem/problem.m3u8 5.45 | Loading manifest and attaching video element... 5.463 | 1 quality levels found 5.463 | Manifest successfully loaded 5.484 | Media element attached, trying to recover media error. 11.65 | Media element detached 11.65 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: VDA Error 4 11.654 | Media element attached, trying to swap audio codec and recover media error. 12.034 | Media element detached 12.036 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: VDA Error 4 12.047 | Media element attached, cannot recover. Last media error recovery failed. 12.426 | The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: VDA Error 4
{ "properties": { "render_id": 1655, "player_id": 11, "created": "2023-07-06 17:55:57.476 UTC", "origin_url": "https://hlsjs.video-dev.org/", "kFrameUrl": "https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Ftest-streams.mux.dev%2Fx36xhzz%2Fx36xhzz.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==", "kFrameTitle": "hls.js demo", "url": "blob:https://hlsjs.video-dev.org/07aac4ef-1f4e-47bd-9e17-c1076ad0679b", "kTextTracks": [], "info": "Effective playback rate changed from 0 to 1", "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": false, "profile": "unknown", "sample format": "Signed 16-bit", "samples per second": 48000, "seek preroll": "0us" } ], "kVideoTracks": [ { "alpha mode": "is_opaque", "codec": "h264", "coded size": "3840x2160", "color space": { "matrix": "BT709", "primaries": "BT709", "range": "LIMITED", "transfer": "BT709" }, "encryption scheme": "Unencrypted", "has extra data": false, "hdr metadata": "unset", "natural size": "3840x2160", "orientation": "0°", "profile": "h264 high", "visible rect": "0,0 3840x2160" } ], "kIsAudioDecryptingDemuxerStream": false, "kAudioDecoderName": "FFmpegAudioDecoder", "kIsPlatformAudioDecoder": false, "kIsVideoDecryptingDemuxerStream": false, "kVideoDecoderName": "VDAVideoDecoder", "kIsPlatformVideoDecoder": true, "debug": "ISO-BMFF container metadata for video frame indicates that the frame is a keyframe, but the video frame contents indicate the opposite.", "seek_target": 5.810637, "dimensions": "3840x2160", "kResolution": "3840x2160", "event": "kPause", "error": { "cause": { "code": 1, "data": {}, "group": "DecoderStatus", "message": "", "stack": [ { "file": "media/gpu/ipc/service/vda_video_decoder.cc", "line": 919 } ] }, "code": 3, "data": {}, "group": "PipelineStatus", "message": "", "stack": [ { "file": "media/renderers/video_renderer_impl.cc", "line": 591 } ] }, "duration": 15.007999, "pipeline_buffering_state": { "for_suspended_start": false, "state": "BUFFERING_HAVE_ENOUGH" } }, "events": [ { "time": 0, "key": "created", "value": "2023-07-06 17:55:57.476 UTC" }, { "time": 0.1940000057220459, "key": "origin_url", "value": "https://hlsjs.video-dev.org/" }, { "time": 0.19699999690055847, "key": "kFrameUrl", "value": "https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Ftest-streams.mux.dev%2Fx36xhzz%2Fx36xhzz.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==" }, { "time": 0.19900000095367432, "key": "kFrameTitle", "value": "hls.js demo" }, { "time": 0.3269999921321869, "key": "url", "value": "blob:https://hlsjs.video-dev.org/07aac4ef-1f4e-47bd-9e17-c1076ad0679b" }, { "time": 0.3310000002384186, "key": "kTextTracks", "value": [] }, { "time": 0.33799999952316284, "key": "info", "value": "ChunkDemuxer" }, { "time": 0.3439999967813492, "key": "kRendererName", "value": "RendererImpl" }, { "time": 0.5300000011920929, "key": "pipeline_state", "value": "kStarting" }, { "time": 101.41899999976158, "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": false, "profile": "unknown", "sample format": "Signed 16-bit", "samples per second": 48000, "seek preroll": "0us" } ] }, { "time": 101.87800000607967, "key": "kVideoTracks", "value": [ { "alpha mode": "is_opaque", "codec": "h264", "coded size": "3840x2160", "color space": { "matrix": "BT709", "primaries": "BT709", "range": "LIMITED", "transfer": "BT709" }, "encryption scheme": "Unencrypted", "has extra data": false, "hdr metadata": "unset", "natural size": "3840x2160", "orientation": "0°", "profile": "h264 high", "visible rect": "0,0 3840x2160" } ] }, { "time": 107.00499999523163, "key": "kIsAudioDecryptingDemuxerStream", "value": false }, { "time": 107.0080000013113, "key": "kAudioDecoderName", "value": "FFmpegAudioDecoder" }, { "time": 107.00900000333786, "key": "kIsPlatformAudioDecoder", "value": false }, { "time": 107.0160000026226, "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: 48000, sample_format: Signed 16-bit, bytes_per_frame: 4, seek_preroll: 0us, codec_delay: 0, has extra data: false, 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": 107.04700000584126, "key": "info", "value": "Cannot select DecryptingVideoDecoder for video decoding" }, { "time": 135.83300000429153, "key": "kIsVideoDecryptingDemuxerStream", "value": false }, { "time": 135.89200000464916, "key": "kVideoDecoderName", "value": "VDAVideoDecoder" }, { "time": 135.89299999177456, "key": "kIsPlatformVideoDecoder", "value": true }, { "time": 135.90299999713898, "key": "info", "value": "Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [3840,2160], visible rect: [0,0,3840,2160], natural size: [3840,2160], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}" }, { "time": 135.91499999165535, "key": "pipeline_state", "value": "kPlaying" }, { "time": 153.00900000333786, "key": "debug", "value": "Prepared video sample is not conformant" }, { "time": 153.01299999654293, "key": "debug", "value": "ISO-BMFF container metadata for video frame indicates that the frame is a keyframe, but the video frame contents indicate the opposite." }, { "time": 164.74899999797344, "key": "seek_target", "value": 5.810637 }, { "time": 164.8180000036955, "key": "pipeline_state", "value": "kSeeking" }, { "time": 164.9599999934435, "key": "pipeline_state", "value": "kPlaying" }, { "time": 251.76099999248981, "key": "dimensions", "value": "3840x2160" }, { "time": 251.76500000059605, "key": "kResolution", "value": "3840x2160" }, { "time": 255.27300000190735, "key": "info", "value": "Effective playback rate changed from 0 to 1" }, { "time": 255.37700000405312, "key": "event", "value": "kPlay" }, { "time": 522.7230000048876, "key": "error", "value": "VDA Error 4" }, { "time": 522.7939999997616, "key": "error", "value": { "code": 1, "data": {}, "group": "DecoderStatus", "message": "", "stack": [ { "file": "media/gpu/ipc/service/vda_video_decoder.cc", "line": 919 } ] } }, { "time": 522.8069999963045, "key": "error", "value": "video decode error!" }, { "time": 522.8859999924898, "key": "error", "value": { "cause": { "code": 1, "data": {}, "group": "DecoderStatus", "message": "", "stack": [ { "file": "media/gpu/ipc/service/vda_video_decoder.cc", "line": 919 } ] }, "code": 3, "data": {}, "group": "PipelineStatus", "message": "", "stack": [ { "file": "media/renderers/video_renderer_impl.cc", "line": 591 } ] } }, { "time": 523.027999997139, "key": "pipeline_state", "value": "kStopping" }, { "time": 523.2479999959469, "key": "event", "value": "kPause" }, { "time": 523.3770000040531, "key": "pipeline_state", "value": "kStopped" }, { "time": 221.16499999165535, "key": "duration", "value": 15.007999 }, { "time": 255.2099999934435, "key": "pipeline_buffering_state", "value": { "for_suspended_start": false, "state": "BUFFERING_HAVE_ENOUGH" } } ] }
EDIT: My encoder settings for this stream, just in case that matters. 12 Mbps 4k60 with B-Frames disabled.
EDIT 2: Shaka Player and Bitmovin's HLS Player seem to run into this issue as well. But THEOplayer doesn't! Fascinating.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4