概览

Widevine DRM 是 Google 针对优质媒体提供的内容保护系统。全球主要合作伙伴(例如 Google Play、YouTube、Netflix、Disney+、Amazon Prime Video、HBO Max、Hulu、Peacock、Discovery+、Paramount+ 等)都在使用这款应用。 Widevine 的重点是通过数字分发提供优质内容观看体验。

Widevine DRM 采用以下标准:

支持的平台

除非另有说明,否则 Widevine 客户端以原生方式嵌入到设备平台中。

设备或平台 是否支持?
Android(移动设备、电视、汽车)
Android 开源 (AOSP)
Apple iOS [1]
Apple TV (tvOS) -
Chromecast(投放)
Google Home 和 Nest 设备
Chrome 操作系统 (Chromebook)
Chrome 浏览器(Windows、Mac OS X、Linux)
Chromium 浏览器
Chromium 嵌入式框架 (CEF) / Electron
Firefox 浏览器
边缘浏览器
Opera(浏览器和嵌入式设备)
Safari 浏览器(桌面设备) -
Roku 设备
Amazon Echo 设备
Amazon Fire OS 设备
Amazon Fire TV 设备
Facebook 门户设备
任天堂 Switch -
索尼 Playstation
Microsoft Xbox -
智能电视和蓝光播放器(Tizen、WebOS)

绘图

支持的加密方案

下表对 Widevine 集成平台上的加密方案进行了映射。

平台 cenc cens cbc1 cbcs
Android 4.4 - 6.x(包括 Android TV) Y - - -
Android 7.x 及更高版本(包括 Android TV) Y - - Y
Chromecast(投放) Y - Y Y
Google 首页 Y - - -
智能电视和蓝光播放器 Y - - Y
Widevine iOS Y - - Y
Chrome 浏览器(桌面)和 ChromeOS Y - - Y
Chrome 浏览器(移动设备) Y - - Y
Mozilla Firefox Y - - Y
Opera Y - - Y
NexPlayer SDK Y - - Y

生态系统

绘图

上图显示了 DRM 生态系统中的可用 Widevine 组件。

配置、Keybox 和 OEMCrypto 组件特定于设备集成流程。如果您想将 Widevine 集成到设备中,请与我们联系

合作伙伴运营的代理机制(通过 HTTPS)会收到来自来源客户端设备的许可请求。此代理机制会在发送载荷以通过 Widevine 许可服务执行之前验证请求并附加业务规则。

在任何情况下,Widevine 客户端设备都不会直接与 Widevine 许可服务通信。

颁发 Widevine 许可

Widevine 提供了两种向客户端分配许可的方法:

  • Cloud License Service
    • 可在全球范围内访问的服务,无访问权限或交易费用。
    • 我们为使用 Widevine 被许可人的组织凭据提供了访问权限。
  • 许可服务器 SDK
    • 用于托管您自己的许可服务。

使用 Widevine Cloud License Service

Cloud License Services 提供 2 种环境 - 测试和生产环境。我们为各个 Widevine 被许可人提供了唯一的组织凭据访问权限。

Cloud License Service 提供以下 2 个端点:

  • 检索内容密钥,以便加密内容。
    • 以这种方式请求的内容密钥由 Widevine Cloud License Service 存储。
  • 颁发许可
    • 满足 Widevine 客户端设备生成的许可请求。

来自客户端设备的所有许可请求都必须由许可代理机制处理。

  • Widevine 提供了一个代理 SDK,用于与 Cloud License Service 进行通信。
  • 许可代理会验证并验证传入的客户端请求,并确定要应用的业务规则。
  • 业务规则会附加到设备发起许可请求后,发送到许可服务执行方式。
  • 许可一旦生成,许可内容就不能再修改,并根据发出请求的设备进行个性化设置。

Shaka 打包器

Widevine 中的 Shaka Packager(以前称为 eDASH-Packager)是一个开源参考实现,介绍了如何生成与 DASH 兼容的 MP4 格式、使用 Widevine PSSH 执行加密以及创建 DASH 清单。如需提交 bug 和功能请求,请访问 GitHub 页面

播放器 - Android

Google 维护的开源 ExoPlayer 项目是推荐的参考播放器库,演示 Widevine CENC 媒体的播放。默认情况下,构建 ExoPlayer 将生成一个演示应用,其中包含 Widevine 团队的已知良好 CENC 内容的预设列表。

播放器 - 浏览器

Shaka Player 开源项目是 Widevine 的计划,旨在提供全面的跨浏览器 JavaScript 库框架,以支持使用 CDM(最好是 Widevine)进行 CENC HTML5 播放。除了 GitHub,Shaka Player 开发者团队还设立了 Shaka Player 用户论坛,由 Widevine 负责监控。

Shaka Player 提供:

  • 功能齐全的开源播放器框架
  • 可配置且可自定义的界面
  • 支持跨平台和跨浏览器
  • 支持 HTML5、MSE、EME 和 DASH
  • 多 DRM