从willOutputSampleBuffer或相关的图片中获取图片?

时间:2015-08-27 00:06:18

标签: gpuimage

所以,布拉德拉森非常棒。我正在使用他的GPUImage库,因为他优化了用于视频输出的CGContextCreateImage,而是直接渲染到OpenGL中。然后他把它改写成更令人惊讶的,一半的问题已经过时了。另一半有新的回调,Like this question,但对于我的生活,我不能让视频帧回调不是零。 (CMSampleBuffer到CIImage函数)

由于他的博客,我知道我必须“标记下一帧”以保留在记忆中。我也知道我处理它(但GPUImageVideo也这样做),然后我从帧缓冲区抓取。仍然没有。

应该从CGImagePicture的processImageUpToFilter函数中将其自动过滤到CGImage的捕获命令似乎是我想要的,我已经看到它提到了,但我迷失了如何将输出连接到它的frameBuffer。

或者我应该使用GPUImageRawDataOutput,以及如何连接?我一直在复制和粘贴,编辑,试验,但不确定是否只是因为我不知道openGL足以连接正确的东西或者?

感谢任何帮助。我不会问,因为这里有很多相关的问题,但我使用它们仍然没有输出。

这是我目前的尝试:

func willOutputSampleBuffer(sampleBuffer: CMSampleBuffer!) {
        gpuImageVideoCamera.useNextFrameForImageCapture()
        //Next line seems like a waste, as this func is called in GPUImageVideoCamera already.
        gpuImageVideoCamera.processVideoSampleBuffer(sampleBuffer);
        if let image = gpuImageVideoCamera.imageFromCurrentFramebuffer()
        {
          //it's nil
        }
}

1 个答案:

答案 0 :(得分:1)

似乎使用了过滤器,而useNextFrame应该在AFTER处理后才能超慢。

在willOutputSampleBuffer里面,就是这个。

sum

这给了我们惊人的速度,击败了Google的p2p库。布拉德,谢谢,每个人都应该支持你的努力。