我是OpenGL的新手。
我想从GLSurfaceView录制视频和音频并将其导出为.mp4(或其他格式)。
我有一个GlsurfaceView
来实现Renderer
我已尝试在bigflake.com EncodeAndMuxTest.java
中使用fadden示例,或google/grafika使用RecordFBOActivity.java
,但没有成功,因为我没有'我知道如何实现它。
是否有任何示例或"操作方法"用于录制GLSurfaceView?
答案 0 :(得分:5)
你可以尝试使用INDE Media for Mobile:https://software.intel.com/en-us/articles/intel-inde-media-pack-for-android-tutorials GLCapturer类,它允许在几行代码中进行opengl捕获,样本在这里:
synchronized (videoCapture) {
if (videoCapture.beginCaptureFrame()) {
...
renderScene();
videoCapture.endCaptureFrame();
}
}
答案 1 :(得分:1)
您可以尝试Android Breakout patch。它将游戏记录添加到Android Breakout。
使用GLSurfaceView而不是SurfaceView时,主要区别在于GLSurfaceView想要管理自己的EGL上下文。这要求您创建与GLSurfaceView的上下文共享数据的第二个上下文。管理起来有点尴尬,但是可行。
您可能需要考虑从GLSurfaceView切换到SurfaceView。这需要您进行自己的EGL设置和线程处理,但您可以在Grafika中找到两者的示例。设置工作需要做的工作要多得多,但它会让视频录制等更精彩的东西变得更容易。当然,如果你正在使用需要GLSurfaceView的游戏或图形引擎,那么这不是一个选择。