4

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

4

1 回答 1

4

我想AVSampleBufferDisplayLayer这就是你要找的。

这是一个CALayer可以显示 s 的子类,我想它比通过andCMSampleBuffer的跋涉要快得多。UIImageUIImageView

这是一个简单的AVSampleBufferDisplayLayer支持UIView实现(快速):

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

    func enqueueSampleBuffer(sampleBuffer: CMSampleBuffer!) {
        let displayLayer = self.layer as! AVSampleBufferDisplayLayer
        displayLayer.enqueueSampleBuffer(sampleBuffer)
    }
}
于 2015-10-18T11:27:26.163 回答