【发布时间】:2015-10-13 03:12:28
【问题描述】:
我正在编写一个视频播放器,我尝试在每个解码帧上应用过滤器,然后再将其显示在屏幕上。
我使用MediaCodec 提取帧。帧被解码为从 SurfaceTexture 创建的 Surface,渲染(离屏)到 pbuffer,使用 glReadPixels() 提取
我使用 ExtractMpegFramesTest 作为此页面的示例:
http://bigflake.com/mediacodec/
此时我有ByteBuffer 与提取的像素,我在其上进行一些后期处理(转换为灰度,或运行边缘检测等)
完成后,我想在屏幕上呈现过滤后的帧。 我可以再次使用 MediaCodec 对其进行编码并使用 VideoView 来呈现它,但这样每一帧都被不必要地编码和解码。
有没有一种有效的方法可以在屏幕上渲染这些帧?
【问题讨论】:
-
我也在做同样的事情,你能帮我看看你是怎么做到的吗?
-
@SanjayHirani 在bigflake.com/mediacodec 查看 ExtractMpegFramesTest。我使用此示例中的 CodecOutputSurface 类的修改版本。希望对您有所帮助!
标签: java android android-mediacodec