没有相机的GPUImageMovieWriter

时间:2012-12-12 02:57:45

标签: gpuimage

我是GPUImage的新手,但我觉得它非常好:布拉德做得很好。我喜欢过滤器如此干净地连接在一起的方式。

目标
我正在尝试连接以下内容:
*创建一个openGL场景
*应用一些过滤器(与下面的讨论无关)
*录制到视频

问题
我的问题是我不清楚如何连接录音。不幸的是,interacting with opengl-es没有给我足够的细节来解决该怎么做。

ATTEMPT
我从包中的例子中得到两个起点:
* CubeExample - 获取原始openGL以与GPUImage进行交互 * SimpleVideoFileFilter - 通过过滤器将视频文件重新编码为新文件

我开始使用CubeExample,将videoCamera过滤器替换为GPUImageSolidColorGenerator(另外,我不知道如何从没有过滤器开始)。这使我能够创建一个网格,渲染它并与之交互。然后我认为我只是按照filtering and re-encoding a movie中给出的指令添加GPUImageMovieWriter过滤器,但这需要GPUImageMovie(源代码)和编写器之间的协调。由于我不想要相机流或视频文件作为源,但是动画的openGL序列,我不清楚如何做到这一点。我尝试在movieWriter中添加videoInputReadCallback

movieWriter.videoInputReadyCallback = ^{
    [renderer nextFrame];
    [movieWriter newFrameReadyAtTime:renderer.cmTime atIndex:0];
};

其中nextFrame创建下一帧,完成后调用endProcessing并设置CMTime。没有newFrameReadyAtTime:atIndex:调用,它可以正常工作(动画图像按预期呈现在屏幕上),除了它创建一个只有一帧的视频。通过newFrameReadyAtTime:atIndex:调用,我收到消息

Problem appending pixel buffer at time: 6

在它死之前,这让我觉得movieWriter尚未准备好渲染器呈现它的框架,但我不知道该怎么做。我尝试了很多其他的东西,但无济于事。从与OpenGL-ES的交互中的描述(见上面的链接),看起来应该很容易,但我没有运气。

请求
为了使问题与其他人更相关,如果有人能够发布创建openGL场景(例如三角形)的示例并将其连接到GPUImageMovieWriter以记录到文件,我可能会喜欢它,也许可以将三角形旋转10框架,这样我们就可以看到不仅仅创建了静止图像。

感谢。

0 个答案:

没有答案