Widevine 视频播放

Posted

技术标签:

【中文标题】Widevine 视频播放【英文标题】:Widevine Video Playback 【发布时间】:2013-10-06 23:47:49 【问题描述】:

chromecast sdk 声明支持widevine 内容。通过测试,我确定在 chromecast 设备上运行的浏览器上没有安装 Widevine 浏览器插件。知道这一点后,如何使用 chromecast sdk 播放 Widevine 视频内容?我正在使用子类化 MediaProtocolMessageStream 并试图找出需要将什么 ContentMetaData 传递给 loadMedia()。任何指导都会很棒!

【问题讨论】:

【参考方案1】:

目前,您必须从头开始编写自己的 (javascript) 播放器来支持 DRM 内容,包括 Widevine。 chrome 浏览器(在 Chromecast 设备中)支持 EME,因此您可以利用它。

为了进一步说明,这里需要执行一个非常高级的过程:您需要为“needkey”事件的视频元素注册一个侦听器,该事件将在浏览器检测到受保护的内容时触发。然后你必须调用 video.generateKeyRequest(..) 并传递适当的“密钥系统”和“初始化数据”(initData)。 needkey 事件包含 initData,但应用程序可以在调用 generateKeyRequest() 之前对其进行修改。在通过内容解密模块 (CDM) 之后,浏览器会触发一个“keymessage”事件,其中包含应用程序需要捕获并发送到许可证服务器的请求密钥。如果一切顺利,许可证服务器会返回一个密钥,然后应用程序应通过调用 video.addKey() 将其传递给浏览器。浏览器会将此密钥传递给内容解密模块 (CDM),以用于解密传递给它的帧。

【讨论】:

以上是关于Widevine 视频播放的主要内容,如果未能解决你的问题,请参考以下文章

html 播放器的 Widevine DRM 保护内容中的用户授权。

Android Widevine DASH 实现 + ExoPlayer

在 iOS 上玩 Widevine DRM?

Exoplayer - Widevine 和 MPEG DASH

无法使用 WebChromeClient 播放 DRM 内容

Exoplayer 2.0 上的 Widevine DRM 内容