AVAssetReader/AVAssetWriter 预览当前帧

4
我正在使用AVAssetReader/AVAssetWriter将视频进行转换。我的问题是:如何以实时转换的方式显示当前帧的预览。我考虑将CMSampleBufferRef转换为UIImage,然后应用到UIImageView中。有更好的方法吗?
1个回答

4
我认为AVSampleBufferDisplayLayer是您所需要的。
它是一个CALayer子类,可以显示CMSampleBuffer,我想它比通过UIImageUIImageView来显示要快得多。
以下是一个简单的使用AVSampleBufferDisplayLayer作为后端的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)
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接