如何在没有视频的情况下使用 HTML5 的加密媒体扩展

How to use HTML5's Encrypted Media Extension without video

好的 - 所以我知道加密媒体扩展 (EME) 是关于开发人员的视频解密的。 我的理解是,EME 检测到何时存在加密,获取适当的密钥(带许可证)解密内容并将其传递给正确的编解码器以进行渲染。

现在 - 查看更多细节;从这个好的 intro article on google developers,我正在尝试看看我是否可以调整 EME 引擎以用于非视频内容的流式传输。

我正在研究的挑战是以 EME 可以为我处理密钥并为我解密的方式加密一些静态内容。

我希望 EME 足够通用,以便我可以挂钩回调以向浏览器提供更多加密的静态内容(因为标准只规定了关键系统、CDM、许可证服务器的接口和包装服务)。 问题是我该怎么做?

我确定我们必须有自己的包装服务。 但现在问题扩展到这些细节:-

好吧,简而言之就是这样;欢迎任何建议或启发。

正如 Artjom 所说,您的问题有点宽泛,但有一些快速提示:

  • 我是否需要制作自己的许可服务器(以及它的规格是什么)

许可服务器通常与 CDM 相关联,两者都是专有的,并且绝对以视频为中心。因此,如果您使用 Chrome 和 Widevine CDM,那么您必须使用 Widevine 许可证服务器。

  • 我可以重复使用 Chrome 附带的关键系统之一和 CDM,还是我应该构建自己的方法?

如上所述,CDM 与许可证服务器紧密相关,通常围绕媒体播放进行设计。如果您使用其中一个现有的,那么它会期望获得一个 audio/video 文件来播放和一个密钥。除非您可以将数据打包到视频中,否则这听起来不太符合您的需求。

  • 我是否必须定义自己的 "codec" 来呈现内容?如是;有什么方法可以在浏览器中注册这个编解码器吗?

编解码器只是媒体管道的一部分 - 如果真的有可能在视频中表示您的数据,例如通过简单地拥有 'pictures' 数据,那么将更容易使用现有的编解码器。