在iOS和Android上使用Flutter / React Native播放DRM内容

时间:2018-08-22 15:39:58

标签: react-native flutter drm widevine playready

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

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

对于React Native,我刚刚发现Exoplayer可以播放宽幅视频,但没有Playready DRM内容。

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

最好的问候

1 个答案:

答案 0 :(得分:2)

要播放受特定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模式,因此从理论上讲,可以在所有设备上播放的单一加密格式必杀技-可能需要一些支持才能在所有设备上发挥作用,但是。