在Grafika - CameraCaptureActivity中每帧渲染一次视频效果



我指的是演示应用程序Grafika,其中CameraCaptureActivity记录视频,同时显示应用效果的实时预览。

在CameraCaptureActivity中进行记录时,任何应用于来自相机的帧的效果都会执行两次。
一次用于预览,一次用于将视频保存到文件。

由于被预览的同一帧被保存到文件中,如果这可以只做一次,将节省大量的处理。

帧的渲染直接发生在两个表面上,一个是GLSurfaceView(用于预览),另一个是MediaCodec(保存部分)。

是否有一种方法可以只渲染一次OpenGL效果?

如果我能把一个表面的内容复制到另一个表面,那就太好了。
有办法做到这一点吗?

是:你可以渲染到一个FBO,然后输出两次,一次显示,一次记录。

Grafika的"记录GL应用程序"活动展示了三种不同的方法来解决这个问题(其中一种只适用于gls3.0 +)。doFrame()方法完成工作;

最新更新