5

我是OpenGL的新手。我想从 GLSurfaceView 录制视频和音频并将其导出为 .mp4(或其他格式)。我有一个GlsurfaceView工具Renderer

我尝试在bigflake.comEncodeAndMuxTest.javagoogle/grafikaRecordFBOActivity.java使用fadden 示例,但没有成功,因为我不知道如何实现它。

是否有记录 GLSurfaceView 的示例或“操作方法”?

4

2 回答 2

5

您可以尝试使用 INDE Media for Mobile:https: //software.intel.com/en-us/articles/intel-inde-media-pack-for-android-tutorials GLCapturer 类,它允许在一个几行代码,示例在这里:

https://github.com/INDExOS/media-for-mobile/blob/master/samples/src/main/java/org/m4m/samples/GameRenderer.java

synchronized (videoCapture) {
    if (videoCapture.beginCaptureFrame()) {
        ...

        renderScene();

        videoCapture.endCaptureFrame();
    }
}

在此处输入图像描述

于 2015-03-11T14:09:16.573 回答
2

你可以试试Android Breakout 补丁。它将游戏录制添加到Android Breakout中。

使用 GLSurfaceView 而不是 SurfaceView 时的主要区别在于 GLSurfaceView 想要管理自己的 EGL 上下文。这需要您创建与 GLSurfaceView 的上下文共享数据的第二个上下文。管理起来有点尴尬,但可行。

您可能需要考虑从 GLSurfaceView 切换到 SurfaceView。这需要您进行自己的 EGL 设置和线程处理,但您可以在 Grafika 中找到这两者的示例。设置东西需要做更多的工作,但它使视频录制等花哨的东西变得更容易。当然,如果您使用的是需要 GLSurfaceView 的游戏或图形引擎,那将不是一个选择。

于 2015-02-27T17:08:43.523 回答