Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

m3u8 file with an audio only stream #2654

Closed
franzwarning opened this issue Apr 15, 2020 · 4 comments
Closed

m3u8 file with an audio only stream #2654

franzwarning opened this issue Apr 15, 2020 · 4 comments

Comments

@franzwarning
Copy link

Hey -- wondering if this is a bug or a feature. I have an m3u8 playlist that looks like this:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=5094179,RESOLUTION=1080x1080,CODECS="avc1.640020,mp4a.40.2"
1080/prog_index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=2894179,RESOLUTION=720x720,CODECS="avc1.64001f,mp4a.40.2"
720/prog_index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=1519179,RESOLUTION=480x480,CODECS="avc1.64001e,mp4a.40.2"
480/prog_index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=584179,RESOLUTION=240x240,CODECS="avc1.64000d,mp4a.40.2"
240/prog_index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=144179,CODECS="mp4a.40.2"
audio/prog_index.m3u8

hls.js is only showing 4 levels, it doesn't include the audio one at the bottom. However, if I change the codecs of the last entry to avc1.64000d,mp4a.40.2, it shows all the levels (even if the last one doesn't technically use an audio codec).

Is this intended behaviour? Should I change my master file to have a fake video codec there?

Thanks!

@robwalch
Copy link
Collaborator

hls.js excludes audio-only renditions from streams with video-audio renditions for a couple of reasons:

  1. We don't officially support switching from a stream that buffers video and audio to audio only or vice versa. At the very least the stream would stall as hls.js is setup now. A lot of work would be required to manage SourceBuffers to support this properly across all browsers.
  2. When streams go from video-audio to audio because of bandwidth of network latency (TTFB), users think the video is "frozen". It is not clear that there is audio-only track, and that it's being selected because of network performance.

I've seen reports of no. 2 in regions that have great bandwidth, but because of CDN performance streams would seem to "freeze" while audio played for a few seconds as streams start. I personally recommend not to use audio-only renditions to avoid this behavior on iOS or in native playback in Safari. Changes in ABR handling in Safari 13 made this behavior prevalent with certain streams in some regions, and lead to some pretty big support headaches for the folks I work with. If it was easy to support, we could have a configuration option to disable these tracks and I would use that, but because of the challenges in no. 1, I do not think it's worth the effort.

@franzwarning
Copy link
Author

@robwalch Sounds good -- thanks for the response. Makes sense.

@robwalch
Copy link
Collaborator

Thanks for bringing it up @franzwarning, and sorry we don't have an option to enable it.

@fabiyo1
Copy link

fabiyo1 commented Jun 4, 2023

https://5f700d5b2c46f.streamlock.net:443/mirosat/mirosat/playlist.m3u8 , solo se reproduce en vlc , quisiera reproducirlo en todos los reproductores

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants