我正在构建一个在我的家庭局域网上运行的 Web 应用程序,它将视频文件从中央服务器传输到我想要观看的任何设备。
这些视频文件(.mp4、.mkv 等)通常有多个音频流/音轨。单个文件中的这些音频流的编码可能不同,也可能相同(AAC、AC3、MP3 等)。
我的问题是,当在 HTML5 元素中播放视频时,如何预测实际会使用哪个音频流<video>
?(我感觉这可能因浏览器而异,因此如果为了回答问题我必须选择一个,那么我们就选择 Google Chrome)。
我通过反复试验找到了一些信息,但一直没能找到任何实际的文档。例如,我知道 Google Chrome 拒绝播放 AC3 音频。当呈现仅包含 AC3 音频流的视频文件时,它会静默播放(无声音)。当呈现同时包含 AC3 流和 AAC 流的视频时,它会播放后者 - 它唯一支持的流。
但是,我不知道它使用什么方法来在两个 AAC 流之间进行选择。它只是选择流索引最低的流吗?它是否会尝试根据流的标记语言进行过滤?它是否会评估连接的硬件并考虑频道(例如,在连接了合适的硬件时选择 5.1 流)?
如果有人能链接到上述任何文档,我将不胜感激。我已经搜索了几个小时,但还是没能找到任何文档。或者,分享你的经验。理想情况下,我希望能够以这样一种方式构建我的音频流:当支持时,使用我的“首选”流,当兼容性较差时,逐渐使用较差的流作为后备。