所以,布拉德拉森非常棒。我正在使用他的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
}
}
答案 0 :(得分:1)
似乎使用了过滤器,而useNextFrame应该在AFTER处理后才能超慢。
在willOutputSampleBuffer里面,就是这个。
sum
这给了我们惊人的速度,击败了Google的p2p库。布拉德,谢谢,每个人都应该支持你的努力。