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

Joe Medley
Joe Medley

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

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

当您尝试在流式传输中途更改媒体特征时,就会出现此问题。如需更改媒体特性,需要传递新的初始化段。对于大多数特征,这种方法都适用。继续播放。加密设置是例外。第一个初始化分段中的加密设置仅指示是否可以对数据流分段进行加密,这意味着可以将未加密的媒体分段插入数据流中。推论是,即使未加密的串流中只有一个加密分段,也需要在初始化分段中包含加密信息。因此,广告插入需要使用不适用于其他平台的权宜解决方法。

从 Chrome 58 开始,所有这些都将发生变化。现在,您可以在同一数据流中切换加密和非加密模式。这通过匹配 Firefox 和 Edge 中已存在的行为来提高兼容性。

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