4

我在哪里搜索任何解决方案以在 IOS 和 Android 上播放 DRM 内容。我想开发一个跨平台解决方案,可以播放受 DRM 保护的内容,无论是 Widevine 还是 playready。

对于 Flutter 没有任何解决方案,所以我切换到 RN

对于 React Native,我刚刚发现 Exoplayer 能够播放 Widevine 但没有 Playready DRM 内容。

也许你们中的某个人可以帮助我找出,我怎么能在两个平台上做到这一点?

此致

4

1 回答 1

6

要播放受特定 DRM 方案保护的加密内容,您需要设备或浏览器支持该 DRM 方案。

作为一般规则,设备和浏览器本机支持以下 DRM - 天真意味着 DRM 通常在您购买设备时内置于操作系统或浏览器中:

  • Android 设备 - Widevine
  • PC 或 MAC 上的 Chrome 浏览器 - Widevine
  • iOS 设备 - FairPlay
  • Safari 浏览器 - FairPlay
  • Internet Explorer 浏览器 - PlayReady

要允许在多个设备上播放加密内容,您需要使用每个设备的方案对其进行加密。在过去,这意味着必须有单独的流,但 DASH CENC 允许通过多个 DRM 方案加密单个流 - 规范位于此链接:

不幸的是,如果您无权访问该规范,则可能值得查看一些打包网站,其中将包含有关创建 CENC 流的信息 - 例如:

还有一件事需要注意,因为传统上 iOS/FairPlay 使用与 Widevine 和 PlayReady 不同的 AES 加密模式 - 它使用 AES CBC 模式而不是 CTR 模式。但是,Widevine 和 PlayReady 最近也宣布支持 AES CBC 模式,因此理论上可以在所有设备上播放的单一加密格式的必杀技 - 最有可能需要一些时间才能支持所有设备,然而。

于 2018-08-28T08:35:20.760 回答