Ray,我们将逐一介绍所有(媒体)流。

Joe Medley
Joe Medley

目前,在 Chrome 中使用媒体来源扩展 (MSE) 时,您无法在加密流和清晰流之间切换。实际上,MSE 规范并未禁止这样做。相反,此限制主要与如何设置媒体流水线以支持加密媒体扩展 (EME) 有关。

MSE 要求媒体流从初始化段开始,该段包含编解码器初始化数据和加密信息等信息。通常,初始化段位于媒体文件的开头。因此,当媒体通过下载或 MSE 附加到媒体元素时,它们会“正常运行”。

当您尝试在流式传输过程中更改媒体特性时,就会出现此问题。更改媒体特性需要传递新的初始化片段。对于大多数特征,都可以这样做。继续播放。但加密设置除外。第一个初始化片段的加密设置仅指示流片段是否可以加密,这意味着可以在串流中插入明确的媒体片段。由此得出的推论是,即使是包含单个加密段的未加密流,也要求在初始化段中包含加密信息。因此,若要进行广告插入,需要采用不适用于其他平台的解决方法。

从 Chrome 58 开始,所有这些更改都将发生变化。现在,您可以在同一视频流中 在加密和未加密之间切换这可以通过匹配 Firefox 和 Edge 中已有的行为来提高兼容性。

有一些注意事项。首先,如果您预计媒体流中有任何加密段,则必须预先设置 MediaKeys。与之前一样,您不能在同一来源中混合使用 HTTP 和 HTTPS。