使用MediaCodec记录曲面

时间:2014-02-03 11:13:28

标签: android opengl-es ffmpeg glsurfaceview mediacodec

因此,在我的应用程序中,我能够使用GPUImage库向来自Camera的视频显示效果(如模糊滤镜,高斯)。

基本上,I(库)将从Camera获取输入,获取原始字节数据,将其从YUV格式转换为RGBA格式,然后将效果应用于此图像并显示在Surface GLSurfaceView上1}}使用OpenGL。最后,对于用户来说,它看起来像是应用了效果的视频。

现在我想使用MediaCodec API将Surface的帧记录为视频。

但是discussion表示我们无法将预定义的Surface传递给MediaCodec

我在bigflake看到了一些使用Surface创建MediaCodec.createInputSurface()的示例,但对我来说,Surface来自GLSurfaceView

那么,如何将Surface的帧记录为视频?

我将并行录制音频,使用FFMPEG合并该视频和音频,并将其作为应用效果的视频呈现给用户。

1 个答案:

答案 0 :(得分:8)

您可以在Grafika中看到完整的示例。

特别是,“显示+捕捉相机”活动将相机输出记录到.mp4。它还demonstrates在GL着色器中应用了一些简单的图像处理技术。它使用GLSurfaceView和复杂的舞蹈来保持录音的方向变化。

也可能感兴趣的是,“带有FBO的记录GL应用程序”活动记录了OpenGL ES呈现的几种不同方式。它使用普通SurfaceView,而且更简单。