我目前正在使用AVComposition和CIFilter来应用过滤器和AVExportSession来导出该视频,但是处理45秒钟的视频要花费30秒钟的时间。
我也尝试过将MtalPetal与SDAVAssetExportSession一起使用,但仍然需要花费时间。
我也尝试过GPUImage示例,但这仍然需要时间。
视频分辨率:480 * 480
注意:在我的应用程序中,我在录制时无法应用过滤器。
谁能建议我如何减少iOS上的视频处理时间?
答案 0 :(得分:0)
您实际上可以在激活过滤器的情况下录制视频,并在录制时将其保存到文件中,这意味着导出时间为0。
您将需要使用:
AVCaptureVideoDataOutput
这为以下提供了委托方法:
captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!)
基本上,您将CMSampleBuffer
转换为CIImage,应用滤镜,回到CMSampleBuffer
,然后保存。
这是一个困难的API,我建议您看一下:
这给出了一个思路,即如何设置正确的队列,以便按顺序取出视频帧和音频,然后将它们通过过滤器,然后再将其即时导出到视频文件中。