Android 演员使用自定义加密播放视频

Android cast playing a video with custom encryption

我有一个 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 的支持 - 以便能够将视频从手机 phone 流式传输到电视。

但是查看 api 我无法找到实现我的解密算法的方法。 据我所知,它支持未加密的视频或具有某些标准 DRM 的视频。

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

新的 CAF 框架提供了三个不同的选项:

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

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

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

CENC 明文密钥顾名思义就是明文密钥。它不是很安全,但对您来说 'hurdle'(这基本上是大多数安全系统)可能就足够了。