使用MediaCodec记录曲面

Run*_*ion 14 android ffmpeg opengl-es glsurfaceview mediacodec

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

基本上,我(库)将来自摄像机的输入,获得真实的原始字节的数据,将其转换为从YUV格式RGBA格式,然后应用上的影响到该图像和显示器SurfaceGLSurfaceView使用OpenGL.最后,对于用户来说,它看起来像是应用了效果的视频.

现在我想Surface使用MediaCodec API 将视频帧记录下来.

但是这个讨论说我们无法将预定义传递SurfaceMediaCodec.

我在bigflake看到了一些他正在Surface使用的样品,MediaCodec.createInputSurface()但对我来说,Surface来自于GLSurfaceView.

那么,我如何录制Surface视频的帧?

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

fad*_*den 8

你可以在格拉菲卡看到一个完整的例子.

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

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