我有一个可以播放一些视频内容的安卓应用。该视频是带有一些简单的自定义加密的 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 的视频。
是否可以实现自定义加密,类似于上面的代码?
最佳答案
新的 CAF 框架提供了三种不同的选择:
- 样式化媒体接收器
- 自定义接收器
- 默认媒体接收器
唯一支持 DRM 的是自定义接收器,正如您所说,它是为标准 DRM 设计的。
但是它应该支持 CENC 明文 key ,这可能足以满足您的需求并允许您避免使用 DRM 服务。
CENC 明文 key 顾名思义就是明文 key 。它不是很安全,但对您来说可能足以成为一个“障碍”(这基本上是大多数安全系统的障碍)。
关于Android Cast 使用自定义加密播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55275971/