ffmpeg - 具有不同音频和视频质量的 HLS

标签 ffmpeg video-streaming http-live-streaming exoplayer

我正在尝试实现具有 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说:

  1. 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/

相关文章:

swift - tvOS:AVPlayer 音频播放但没有视频

video - HLS - ffmpeg 失败,无法为输出文件 #0 写入 header (编解码器参数不正确?): No such file or directory

ffmpeg - 通过 ffplay 播放 USB 网络摄像头流时获取 "unable to decode APP fields"

linux - 使用命令行工具合并两个音频文件

linux:m3u8:如何从 .m3u8 中列出的片段手动下载和创建 mp4

ffmpeg:组合/排序 vidstab 和裁剪过滤器

javascript - 如何播放不带扩展名 video.js 的流 URL

video-streaming - 私有(private) HLS 直播流 - 安全地生成预览?

c# - 适用于 Windows 10 的 HLS 播放器

ffmpeg - 无法使用 ffmpeg 生成视频