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

标签 android chromecast drm

我有一个可以播放一些视频内容的安卓应用。该视频是带有一些简单的自定义加密的 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/

相关文章:

ios - 如何获得更定期的流位置更新?

android - 从 Android 转换 - 您可以转换整个应用程序还是仅转换应用程序内的媒体内容

iphone - 如何检测 MPMediaItem 是否代表 iOS 上受 DRM 保护的音轨

html - 如何在网络上播放音频文件但未启用下载?

android - 应用程序被杀死时没有触发 FCM 通知

android - GridView 没有创建正方形

java - 我的相机预览被拉伸(stretch)和压扁。我怎么解决这个问题?

android - 如何将android状态栏颜色更改为白色并将状态栏图标颜色更改为灰色

android - 使用 GWT 开发 Chromecast 接收器

ubuntu - 我怎么能关闭 DRM mod 调试打印