因此,在我的应用程序中,我可以使用GPUImage库向来自摄像头的视频显示效果(如模糊过滤器、高斯)。
基本上,我(库)将从相机获取输入,获取原始字节数据,将其从YUV格式转换为RGBA格式,然后使用OpenGL将效果应用于此图像并显示在GLSurfaceView的Surface上。最后,对于用户来说,它看起来像一个应用了特效的视频。
现在我想用MediaCodec接口把Surface的帧录制成视频。
但是这个discussion说明我们不能将预定义的Surface传递给MediaCodec。
我在bigflake上看过一些他使用MediaCodec.createInputSurface()创建Surface的示例,但对我来说,Surface来自GLSurfaceView。
那么,如何将Surface的帧录制为视频呢?
我将并行录制音频,使用FFMPEG合并视频和音频,并将其作为应用效果的视频呈现给用户。
发布于 2014-02-03 23:48:37
你可以在Grafika中看到一个完整的例子。
特别是,“显示+捕获摄像机”活动将摄像机输出记录到.mp4。它也demonstrates应用一些简单的图像处理技术在GL着色器。它使用GLSurfaceView和令人费解的舞蹈来保持记录在方向变化中进行。
同样可能感兴趣的是,“使用FBO记录GL应用程序”活动记录了OpenGL ES渲染的几种不同方式。它使用普通的SurfaceView,更简单明了。
https://stackoverflow.com/questions/21525859
复制相似问题