我正在使用GPUImage的GPUImageVideoCamera initWithSessionPreset:cameraPosition:以便在iOS设备上显示来自后置摄像头的视频(以iOS 7为目标)。这将被过滤并显示在GPUImageView上。不会超过AVCaptureSessionPreset640x480。
在应用程序的任何特定时刻,我都需要回忆过去5秒内从后置摄像头拍摄的未经过滤的视频,并立即在另一个(或相同的)GPUImageView上播放。
我可以通过GPUImageVideoCamera的willOutputSampleBuffer访问CMSampleBufferRef:这是通过但是我不确定如何以最有效的方式将最新的帧存入内存,以便可以即时,无缝地播放。
我认为解决方案是使用Circular Buffer之类的TPCircularBuffer,但我不确定它是否适用于视频流。还想引用未答复的Buffering CMSampleBufferRef into a CFArray和Hold multiple Frames in Memory before sending them to AVAssetWriter,因为它们与我最初的攻击计划非常相似,直到我开始研究它。