我有一个编码的视频流,我正在通过exoplayer播放。我想要做的是获取视频的每一帧并在显示之前对其进行编辑(例如,更改一些像素)。
是否可以使用exoplayer执行此操作?我一直在看exoplayer源中的MediaCodecVideoRenderer.java的实现,但似乎每个MediaCodec都将其输出缓冲区释放到表面本身,而不可能在渲染之前编辑帧。
答案 0 :(得分:0)
它将取决于你想要修改的内容,但是可以使用GLSurface视图并监听每个帧然后转换帧,假设它没有加密(加密你通常仍然应用转换位你绝对不应该能够阅读框架本身。)
有一个很好的示例项目可以做类似的事情,将过滤器应用于视频,扩展ExoPlayer - 特别是看看EPlayerRenderer类。
你也可以用openCV做类似的事情 - 在框架中读取,修改它然后显示它。如果您正在进行编译的图像处理,这可能会更容易。