2015-10-18 64 views
3

我正在使用AVAssetReader/AVAssetWriter在iOS上转换我的视频。 我的问题是:什么是最有效的方式来显示实时转换当前帧的预览。 我在考虑将CMSampleBufferRef转换为UIImage,然后应用到UIImageView中。有没有更好的方法?当前帧的AVAssetReader/AVAssetWriter预览

回答

2

我认为AVSampleBufferDisplayLayer是你在找什么。

这是一个CALayer子类,它可以显示CMSampleBuffer S和我想象它是通过UIImageUIImageView比跋涉快得多。

下面是一个简单AVSampleBufferDisplayLayer -backed UIView实现(SWIFT):

class SampleBufferView: UIView { 
    override class func layerClass() -> AnyClass { 
     return AVSampleBufferDisplayLayer.self 
    } 

    func enqueueSampleBuffer(sampleBuffer: CMSampleBuffer!) { 
     let displayLayer = self.layer as! AVSampleBufferDisplayLayer 
     displayLayer.enqueueSampleBuffer(sampleBuffer) 
    } 
}