Cannot play video with shorter audio after end of audio.
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
- Domain
- audio-video-rtc
Research direction
Reproduce the issue in the Hls.js demo with the provided stream and inspect the logged fragment parsing and buffering behavior around 16 seconds. Trace the stream-controller and transmuxer paths shown in the console output; done means the full 30-second video remains playable when audio ends.
Written by the indexing model from the issue text.
Description
What version of Hls.js are you using?
1.6.2
What browser (including version) are you using?
Chrome 136.0.7103.114 (Official Build) (arm64)
What OS (including version) are you using?
MacOS Sequoia 15.5
Test stream
Configuration
{ }
Additional player setup steps
No response
Checklist
- The issue observed is not already reported by searching on Github under https://github.com/video-dev/hls.js/issues
- The issue occurs in the stable client (latest release) on https://hlsjs.video-dev.org/demo and not just on my page
- The issue occurs in the latest client (main branch) on https://hlsjs-dev.video-dev.org/demo and not just on my page
- The stream has correct Access-Control-Allow-Origin headers (CORS)
- There are no network errors such as 404s in the browser console when trying to play the stream
Steps to reproduce
- Play the video
- At the 16 second mark the video stops and an infinite spinner is displayed
Alternatively:
- Seek the video after the 16 second mark
- Video does not play and an infinitie spinner is displayed
Expected behaviour
I can play the video for the entire length even without audio.
What actually happened?
The video is 30 seconds long.
The audio stream for the video is only 16 seconds long starting at the beginning of the video stream.
When parsing the fragment containing the end of the audio, only the part with audio is buffered.
Then when parsing the next fragment none of it is buffered and fragment parsing is stopped.
According to https://github.com/video-dev/hls.js/issues/5550 video should be prioritized over the audio which does not seem to be the case here.
Console output
blob:https://hlsjs.video-dev.org/7b3ec0aa-6337-49aa-8900-c3b8cfa18cc4:1197 [log] > Debug logs enabled for "main" in hls.js version 1.6.2
base-stream-controller.ts:2093 [log] > [subtitle-stream-controller]: IDLE->STOPPED
main.js:350 Using Hls.js config: {debug: true, enableWorker: true, lowLatencyMode: true, backBufferLength: 90}
logger.ts:102 [log] > Debug logs enabled for "Hls instance" in hls.js version 1.6.2
hls.ts:575 [log] > stopLoad
hls.ts:509 [log] > loadSource:https://cdnvideo.webvideocore.net/enc4_vdokh9d9l8b32aqr8677gr7vk179dqpq9ek8uec1gu2apm14bfr0nj7d75r6el8aq2bpsq29mg3e8631hfiibro31cuovl95ekqgqi5dunuv3tuktnh98m3akjagh6jcv25ol25khml3mbve1p9fdegnu54/index.m3u8?clip_id=22fvi72f963o
stream-controller.ts:611 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.ts:462 [log] > attachMedia
buffer-controller.ts:320 [log] > [buffer-controller]: created media source: MediaSource
buffer-controller.ts:1513 [log] > [buffer-controller]: Media source opened
buffer-controller.ts:1342 [log] > [buffer-controller]: checkPendingTracks (pending: 0 codec events expected: 0) {}
level-controller.ts:370 [log] > [level-controller]: manifest loaded, 1 level(s) found, first bitrate: 0
buffer-controller.ts:266 [log] > [buffer-controller]: 1 bufferCodec event(s) expected.
playlist-loader.ts:405 [log] > auto startLoad with configured startPosition -1
hls.ts:552 [log] > startLoad(-1)
level-controller.ts:468 [log] > [level-controller]: Switching to level 0 (SDR @0) from level -1
base-stream-controller.ts:2093 [log] > [stream-controller]: STOPPED->IDLE
base-stream-controller.ts:2093 [log] > [subtitle-stream-controller]: STOPPED->IDLE
stream-controller.ts:671 [log] > [stream-controller]: Level 0 loaded [1,8][part-8--1], cc [0, 0] duration:30.367
base-stream-controller.ts:1725 [log] > [stream-controller]: setting startPosition to 0 by default
interstitials-controller.ts:1056 [log] > [interstitials]: setSchedulePosition 0, undefined
interstitials-controller.ts:1842 [log] > [interstitials]: buffered to boundary [primary: 0.00-30.37]
interstitials-controller.ts:1294 [log] > [interstitials]: resuming [primary: 0.00-30.37]
buffer-controller.ts:1319 [log] > [buffer-controller]: Updating MediaSource duration to 30.367
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 1 of level 0 (frag:[0.000-2.500]) cc: 0 [1-8], target: 0
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
transmuxer-interface.ts:88 [log] > injecting Web Worker for "main"
transmuxer-interface.ts:238 [log] > [transmuxer-interface]: Starting new transmux session for main sn: 1 level: 0 id: 1
discontinuity: true
trackSwitch: true
contiguous: false
accurateTimeOffset: true
timeOffset: 0
initSegmentChange: true
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 1 of level 0
2f823fbc-cd9a-4e8d-9165-f1cb9b0e6fd8:1197 [log] > Debug logs enabled for "main" in hls.js version 1.6.2
transmuxer-interface.ts:396 [log] > [mp4-remuxer]: ISGenerated flag reset
transmuxer-interface.ts:396 [log] > [mp4-remuxer]: initPTS & initDTS reset
transmuxer-interface.ts:396 [log] > [mp4-remuxer]: reset next timestamp
2f823fbc-cd9a-4e8d-9165-f1cb9b0e6fd8:10863 [log] > manifest codec:undefined, parsed codec:mp4a.40.2, channels:2, rate:44100 (ADTS object type:2 sampling index:4)
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
stream-controller.ts:1435 [log] > [stream-controller]: Init audio buffer, container:audio/mp4, codecs[selected/level/parsed]=[mp4a.40.2//mp4a.40.2]
stream-controller.ts:1464 [log] > [stream-controller]: Init video buffer, container:video/mp4, codecs[level/parsed]=[/avc1.640028]
buffer-controller.ts:590 [log] > [buffer-controller]: BUFFER_CODECS: "audio,video" (current SB count 0)
buffer-controller.ts:1342 [log] > [buffer-controller]: checkPendingTracks (pending: 2 codec events expected: 1) {"audio":{"listeners":[],"codec":"mp4a.40.2","container":"audio/mp4","levelCodec":"mp4a.40.2","metadata":{"channelCount":2},"id":"main"},"video":{"listeners":[],"codec":"avc1.640028","container":"video/mp4","metadata":{"width":1920,"height":1080},"id":"main"}}
buffer-controller.ts:1411 [log] > [buffer-controller]: creating sourceBuffer(audio/mp4;codecs=mp4a.40.2) {"listeners":[],"codec":"mp4a.40.2","container":"audio/mp4","levelCodec":"mp4a.40.2","metadata":{"channelCount":2},"id":"main"}
buffer-controller.ts:1411 [log] > [buffer-controller]: creating sourceBuffer(video/mp4;codecs=avc1.640028) {"listeners":[],"codec":"avc1.640028","container":"video/mp4","metadata":{"width":1920,"height":1080},"id":"main"}
buffer-controller.ts:1380 [log] > [buffer-controller]: SourceBuffers created. Running queue:
video: (SourceBuffer)
audio: (SourceBuffer)
audiovideo: (none) }
audio-stream-controller.ts:153 [log] > [audio-stream-controller]: InitPTS for cc: 0 found from main: 9090/90000
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 1 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 1 of level 0 (frag:[0.000-2.567])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 1 of level 0 (frag:[0.000-2.567] > buffer:[0.067-2.508])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 2 of level 0 (frag:[2.508-5.008]) cc: 0 [1-8], target: 2.508
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 2 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 2 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 2 of level 0 (frag:[2.508-5.067])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 2 of level 0 (frag:[2.508-5.067] > buffer:[0.067-5.015])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 3 of level 0 (frag:[5.016-9.183]) cc: 0 [1-8], target: 5.016
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 3 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 3 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 3 of level 0 (frag:[5.016-9.233])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 3 of level 0 (frag:[5.016-9.233] > buffer:[0.067-9.172])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 4 of level 0 (frag:[9.172-14.172]) cc: 0 [1-8], target: 9.172
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 4 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 4 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 4 of level 0 (frag:[9.172-14.233])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 4 of level 0 (frag:[9.172-14.233] > buffer:[0.067-14.187])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 5 of level 0 (frag:[14.187-19.187]) cc: 0 [1-8], target: 14.187
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 5 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 5 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 5 of level 0 (frag:[14.187-19.233])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 5 of level 0 (frag:[14.187-19.233] > buffer:[0.067-15.604])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
base-stream-controller.ts:899 [log] > [stream-controller]: Loading main sn: 6 of level 0 (frag:[15.604-20.604]) cc: 0 [1-8], target: 15.604
base-stream-controller.ts:2093 [log] > [stream-controller]: IDLE->FRAG_LOADING
base-stream-controller.ts:512 [log] > [stream-controller]: Loaded main sn: 6 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: FRAG_LOADING->PARSING
transmuxer-interface.ts:396 [log] > [transmuxer.ts]: Flushed main sn: 6 of level 0
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSING->PARSED
base-stream-controller.ts:2040 [log] > [stream-controller]: Parsed main sn: 6 of level 0 (frag:[19.233-24.233])
base-stream-controller.ts:708 [log] > [stream-controller]: Buffered main sn: 6 of level 0 (frag:[19.233-24.233] > buffer:[0.067-15.604])
base-stream-controller.ts:2093 [log] > [stream-controller]: PARSED->IDLE
Chrome media internals output
{
"properties": {
"render_id": 1604,
"player_id": 0,
"created": "2025-05-22 08:02:31.339025 UTC",
"origin_url": "https://hlsjs.video-dev.org/",
"kFrameUrl": "https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fcdnvideo.webvideocore.net%2Fenc4_vdokh9d9l8b32aqr8677gr7vk179dqpq9ek8uec1gu2apm14bfr0nj7d75r6el8aq2bpsq29mg3e8631hfiibro31cuovl95ekqgqi5dunuv3tuktnh98m3akjagh6jcv25ol25khml3mbve1p9fdegnu54%2Findex.m3u8%3Fclip_id%3D22fvi72f963o&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==",
"kFrameTitle": "hls.js demo",
"url": "blob:https://hlsjs.video-dev.org/c775a476-ba71-4377-8bc1-544c6150053c",
"info": "Selected VideoToolboxVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}",
"kRendererName": "RendererImpl",
"pipeline_state": "kPlaying",
"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": 44100,
"seek preroll": "0us"
}
],
"kVideoTracks": [
{
"alpha mode": "is_opaque",
"codec": "h264",
"coded size": "1920x1080",
"color space": {
"matrix": "BT709",
"primaries": "BT709",
"range": "LIMITED",
"transfer": "BT709"
},
"encryption scheme": "Unencrypted",
"has extra data": false,
"hdr metadata": "unset",
"natural size": "1920x1080",
"orientation": "0°",
"profile": "h264 high",
"visible rect": "0,0 1920x1080"
}
],
"kIsAudioDecryptingDemuxerStream": false,
"kAudioDecoderName": "FFmpegAudioDecoder",
"kIsPlatformAudioDecoder": false,
"kIsVideoDecryptingDemuxerStream": false,
"kVideoDecoderName": "VideoToolboxVideoDecoder",
"kIsPlatformVideoDecoder": true,
"debug": "Skipping audio splice trimming at PTS=2507732us. Found only 22us of overlap, need at least 1000us. Multiple occurrences may result in loss of A/V sync.",
"dimensions": "1920x1080",
"kResolution": "1920x1080",
"duration": 30.367,
"pipeline_buffering_state": {
"for_suspended_start": false,
"reason": "DEMUXER_UNDERFLOW",
"state": "BUFFERING_HAVE_NOTHING"
},
"event": "kPlay",
"audio_buffering_state": {
"reason": "DEMUXER_UNDERFLOW",
"state": "BUFFERING_HAVE_NOTHING"
},
"video_track_selected": "unset",
"video_buffering_state": {
"state": "BUFFERING_HAVE_ENOUGH"
}
},
"events": [
{
"time": 0,
"key": "created",
"value": "2025-05-22 08:02:31.339025 UTC"
},
{
"time": 0.22500000149011612,
"key": "origin_url",
"value": "https://hlsjs.video-dev.org/"
},
{
"time": 0.22699999809265137,
"key": "kFrameUrl",
"value": "https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fcdnvideo.webvideocore.net%2Fenc4_vdokh9d9l8b32aqr8677gr7vk179dqpq9ek8uec1gu2apm14bfr0nj7d75r6el8aq2bpsq29mg3e8631hfiibro31cuovl95ekqgqi5dunuv3tuktnh98m3akjagh6jcv25ol25khml3mbve1p9fdegnu54%2Findex.m3u8%3Fclip_id%3D22fvi72f963o&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ=="
},
{
"time": 0.2280000001192093,
"key": "kFrameTitle",
"value": "hls.js demo"
},
{
"time": 0.2679999992251396,
"key": "url",
"value": "blob:https://hlsjs.video-dev.org/c775a476-ba71-4377-8bc1-544c6150053c"
},
{
"time": 0.28700000047683716,
"key": "info",
"value": "ChunkDemuxer"
},
{
"time": 0.2929999977350235,
"key": "kRendererName",
"value": "RendererImpl"
},
{
"time": 1.1990000009536743,
"key": "pipeline_state",
"value": "kStarting"
},
{
"time": 200.96400000154972,
"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": 44100,
"seek preroll": "0us"
}
]
},
{
"time": 201.00199999660254,
"key": "kVideoTracks",
"value": [
{
"alpha mode": "is_opaque",
"codec": "h264",
"coded size": "1920x1080",
"color space": {
"matrix": "BT709",
"primaries": "BT709",
"range": "LIMITED",
"transfer": "BT709"
},
"encryption scheme": "Unencrypted",
"has extra data": false,
"hdr metadata": "unset",
"natural size": "1920x1080",
"orientation": "0°",
"profile": "h264 high",
"visible rect": "0,0 1920x1080"
}
]
},
{
"time": 202.84700000286102,
"key": "kIsAudioDecryptingDemuxerStream",
"value": false
},
{
"time": 202.847999997437,
"key": "kAudioDecoderName",
"value": "FFmpegAudioDecoder"
},
{
"time": 202.84899999946356,
"key": "kIsPlatformAudioDecoder",
"value": false
},
{
"time": 202.8530000001192,
"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: 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": 202.8779999986291,
"key": "info",
"value": "Cannot select DecryptingVideoDecoder for video decoding"
},
{
"time": 207.97200000286102,
"key": "kIsVideoDecryptingDemuxerStream",
"value": false
},
{
"time": 207.97500000149012,
"key": "kVideoDecoderName",
"value": "VideoToolboxVideoDecoder"
},
{
"time": 208.09700000286102,
"key": "kIsPlatformVideoDecoder",
"value": true
},
{
"time": 208.1199999973178,
"key": "info",
"value": "Selected VideoToolboxVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
},
{
"time": 208.14000000059605,
"key": "pipeline_state",
"value": "kPlaying"
},
{
"time": 223.1059999987483,
"key": "debug",
"value": "Skipping audio splice trimming at PTS=2507732us. Found only 22us of overlap, need at least 1000us. Multiple occurrences may result in loss of A/V sync."
},
{
"time": 226.20600000023842,
"key": "dimensions",
"value": "1920x1080"
},
{
"time": 226.20799999684095,
"key": "kResolution",
"value": "1920x1080"
},
{
"time": 29.152000002563,
"key": "duration",
"value": 30.367
},
{
"time": 228.54699999839067,
"key": "pipeline_buffering_state",
"value": {
"for_suspended_start": false,
"state": "BUFFERING_HAVE_ENOUGH"
}
},
{
"time": 17760.93100000173,
"key": "pipeline_state",
"value": "kSuspending"
},
{
"time": 17761.53299999982,
"key": "pipeline_state",
"value": "kSuspended"
},
{
"time": 17761.608999997377,
"key": "event",
"value": "kSuspended"
},
{
"time": 33834.66099999845,
"key": "info",
"value": "Effective playback rate changed from 0 to 1"
},
{
"time": 33834.91700000316,
"key": "kRendererName",
"value": "RendererImpl"
},
{
"time": 33834.96100000292,
"key": "pipeline_state",
"value": "kResuming"
},
{
"time": 33845.88099999726,
"key": "kIsAudioDecryptingDemuxerStream",
"value": false
},
{
"time": 33845.88700000197,
"key": "kAudioDecoderName",
"value": "FFmpegAudioDecoder"
},
{
"time": 33845.890000000596,
"key": "kIsPlatformAudioDecoder",
"value": false
},
{
"time": 33845.909999996424,
"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: 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": 33846.02199999988,
"key": "info",
"value": "Cannot select DecryptingVideoDecoder for video decoding"
},
{
"time": 33846.99700000137,
"key": "kIsVideoDecryptingDemuxerStream",
"value": false
},
{
"time": 33846.99899999797,
"key": "kVideoDecoderName",
"value": "VideoToolboxVideoDecoder"
},
{
"time": 33847.00100000203,
"key": "kIsPlatformVideoDecoder",
"value": true
},
{
"time": 33847.04500000179,
"key": "info",
"value": "Selected VideoToolboxVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
},
{
"time": 33847.109999999404,
"key": "pipeline_state",
"value": "kPlaying"
},
{
"time": 33875.69399999827,
"key": "dimensions",
"value": "1920x1080"
},
{
"time": 33875.69799999893,
"key": "kResolution",
"value": "1920x1080"
},
{
"time": 33878.72699999809,
"key": "pipeline_buffering_state",
"value": {
"for_suspended_start": false,
"state": "BUFFERING_HAVE_ENOUGH"
}
},
{
"time": 33834.83100000024,
"key": "event",
"value": "kPlay"
},
{
"time": 49474.76200000197,
"key": "audio_buffering_state",
"value": {
"reason": "DEMUXER_UNDERFLOW",
"state": "BUFFERING_HAVE_NOTHING"
}
},
{
"time": 49474.92499999702,
"key": "pipeline_buffering_state",
"value": {
"for_suspended_start": false,
"reason": "DEMUXER_UNDERFLOW",
"state": "BUFFERING_HAVE_NOTHING"
}
},
{
"time": 60607.83799999952,
"key": "video_track_selected",
"value": "unset"
},
{
"time": 60608.7669999972,
"key": "video_buffering_state",
"value": {
"state": "BUFFERING_HAVE_ENOUGH"
}
}
]
}
- Dominant language
- TypeScript
- Stars
- 16.9k
- Forks
- 2.8k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 27
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from video-dev/hls.js
-
Bug metadata Need sample stream Needs Triage
Difficulty 3/5 1-2 days Newbie friendliness 74/100
-
Bug Need info Needs Triage
Difficulty 5/5 Over a week Newbie friendliness 38/100
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
-
cannot reproduce Need info Question
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Bug Needs Triage
Difficulty 4/5 3-5 days Newbie friendliness 55/100
All issues in video-dev/hls.js
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·