OpenGL表面的Android视频录制(GLSURFACEVIEW)
作者:互联网
我正在开发一个项目,我们需要记录渲染的OpenGL表面. (例如,如果我们使用GLsurfaceView,我们需要记录表面以及来自MIC的音频)
目前我通过将视频源设置为VIDEO_SOURCE_GRALLOC_BUFFER来使用MediaRecorder API.
我使用以下sample作为基本代码
我想知道 ….
>这是正确的方法吗? .还有更好的替代品吗?
>链接中给出的样本测试记录了EGLSURFACE的音频和视频,但显示不正确.
可能是什么原因?任何帮助/指针真的很感激.
谢谢,
萨蒂什
解决方法:
您引用的代码不是示例,而是执行非公共接口的内部测试代码. SurfaceMediaSource可能会在将来的版本中更改或消失并破坏您的代码.
更新:
Android 4.3(API 18)允许Surface input到MediaCodec. EncodeAndMuxTest示例演示了如何将OpenGL ES帧记录到.mp4文件中.
MediaRecorder类不接受Surface输入,因此在您的情况下,您需要单独录制音频,然后将其与新的MediaMuxer类合并.
更新#2:
Android 5.0(API 21)允许Surface input到MediaRecorder,这通常比MediaCodec更方便.如果你需要使用MediaCodec,有一个例子显示了在Grafika’s“记录GL活动”中用它记录OpenGL ES输出的三种不同方法.
MediaProjection课程也可用于屏幕录制.
标签:android,opengl-es,mediarecorder 来源: https://codeday.me/bug/20191004/1852202.html