因此,在我的应用程序中,我能够使用GPUImage库向来自Camera的视频显示效果(如模糊滤镜,高斯)。
基本上,I(库)将从Camera获取输入,获取原始字节数据,将其从YUV格式转换为RGBA格式,然后将效果应用于此图像并显示在Surface
GLSurfaceView
上1}}使用OpenGL。最后,对于用户来说,它看起来像是应用了效果的视频。
现在我想使用MediaCodec API将Surface
的帧记录为视频。
但是discussion表示我们无法将预定义的Surface
传递给MediaCodec
。
我在bigflake看到了一些使用Surface
创建MediaCodec.createInputSurface()
的示例,但对我来说,Surface
来自GLSurfaceView
。
那么,如何将Surface
的帧记录为视频?
我将并行录制音频,使用FFMPEG合并该视频和音频,并将其作为应用效果的视频呈现给用户。
答案 0 :(得分:8)
您可以在Grafika中看到完整的示例。
特别是,“显示+捕捉相机”活动将相机输出记录到.mp4。它还demonstrates在GL着色器中应用了一些简单的图像处理技术。它使用GLSurfaceView
和复杂的舞蹈来保持录音的方向变化。
也可能感兴趣的是,“带有FBO的记录GL应用程序”活动记录了OpenGL ES呈现的几种不同方式。它使用普通SurfaceView
,而且更简单。