我正在尝试实现具有 3 种视频质量和一种音频质量的自适应流媒体。愿景是带宽减少时切换到仅音频。但由于某种原因,仅播放仅音频文件。它没有切换到任何其他质量。我在客户端使用 exoplayer。
这是主m3u8文件的内容。
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=64000
audio/output.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1500000
low/output.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400000
medium/output.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4400000
high/output.m3u8
请帮助和建议,在此先感谢
最佳答案
也许玩家只是选择了第一个流。尝试更改变体的顺序。尝试添加其他参数,例如 RESOLUTION 和 CODECS。
更新:虽然可能不适用于其他玩家,HLS Authoring Specification for Apple Devices说:
- Multivariant Playlist requirements
9.1. Your EXT-X-STREAM-INF tag MUST always provide the CODECS attribute.
9.2. Your EXT-X-STREAM-INF tag MUST always provide the RESOLUTION attribute if the rendition includes video.
9.14. You MUST include the AVERAGE-BANDWIDTH attribute.
也许播放器打开第一个 Variant Stream,然后猜测(因为没有 CODEC 属性)它假定所有 Variants Streams 只有音频。
关于ffmpeg - 具有不同音频和视频质量的 HLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71349126/