Android Cast播放具有自定义加密的视频

时间:2019-03-21 08:01:20

标签: android chromecast drm

我有一个可播放一些视频内容的android应用。该视频为mp4,带有一些简单的自定义加密。 在android中,播放器(ExoPlayer)在播放时实时解密视频。

它使用如下代码:

// overriding the function that reads the video file to insert the decryption
public int read(byte[] buffer, int offset, int readLength) throws FileDataSourceException {
        // ...
        // buffer[] holds the video bits, decrypt them here
        buffer[offset] = (byte)(buffer[offset] ^ 1234);

        // ...
    }
}

我现在想添加对Chrome Cast的支持-以便能够将视频从手机流式传输到电视。

但是,看一下api,我看不到实现解密算法的方法。 从我的角度来看,它支持未加密的视频或具有某些标准DRM的视频。

是否可以实现类似于上面的代码的自定义加密?

1 个答案:

答案 0 :(得分:1)

新的CAF框架提供了三种不同的选择:

  • 样式化的媒体接收器
  • 自定义接收器
  • 默认媒体接收器

唯一支持DRM的是自定义接收器,正如您所说的,它是为标准DRM设计的。

但是,它应该支持CENC清除密钥,这可能足以满足您的需求,并且可以避免使用DRM服务。

CENC清除键的名称中包含清除键。它虽然不是很安全,但是无论如何对您来说可能只是一个“障碍”(基本上是大多数安全系统所需要的)。