提问人:vanminhquangtri 提问时间:7/12/2023 更新时间:7/12/2023 访问量:311
是否可以通过纯 Javascript 和视频 HTML5 播放 DRM 内容?
Is it possible to play DRM content by pure Javascript and video HTML5?
问:
作为这篇文章的标题,我想知道我们是否有办法使用纯 Javascript 和视频 HTML5 来播放 DRM 内容(电影、电视频道)。
我正在处理一个提供DRM内容的网站。对于每个浏览器,我们必须使用具有不同配置的不同DRM提供商。例如,Safari 仅支持 Fairlay,Chrome 支持 Widevine,Edge 同时支持 Widevine 和 Playready。
目前我们必须使用第三方,例如 Shaka 播放器、Dashjs,...来玩这些。我意识到这很复杂。我看到所有库都是用 Javascript 编写的。主流将读取流清单,调用 DRM 服务器以获取密钥,获取编码的段。然后通过从DRM服务器返回的密钥对段进行解码。
我希望我们有一种方法可以只使用纯Javascript和视频HTML5。这可能吗?
谢谢。
答:
首先,值得一提的是,您可以使用单个密钥加密内容,并使用不同的 DRM 与每个浏览器/设备共享该密钥 - 如果您不熟悉 CENC(https://docs.unified-streaming.com/documentation/drm/common-encryption.html,https://websites.fraunhofer.de/video-dev/is-this-the-end-of-cenc-an-overview-of-drm-codec-support-in-2021/)。
不幸的是,CENC,或通常所说的通用加密,仍然有变体,虽然将来我们可能只看到使用“cbcs”变体,但目前许多设备仍然需要“cenc”(这次是小写字母 - CENC 保护方案之一)。因此,目前您仍然需要以不同的方式加密 HLS 和 DASH 流以涵盖所有设备。
为了解决你关于使用纯 Javascript 和 HTML5 自己实现播放器的问题,你可以使用媒体源扩展 (MSE) HTML5 机制自己编写播放器,但如果你让它功能齐全,你最终可能会得到类似于 Shaka Player 或 VideoJS 的东西,无论如何这些都是开源的。
实际的视频解密与这些播放器是分开的,并且位于与浏览器关联的 CDM(内容解密模块)中。尽管 CDM 的接口是标准化的,但 CDM 实现特定于每个 DRM 和浏览器。这绝对不是开源的,在具有安全媒体路径的设备中,甚至操作系统也不应该能够看到解密的视频块或流。
评论