4

AVAssetReader/AVAssetWriter iOSでビデオを変換するために使用しています。私の質問は、リアルタイム変換で現在のフレームのプレビューを表示する最も効率的な方法は何ですか. UIImageに変換CMSampleBufferRefしてからUIImageViewに適用することを考えていました。より良い方法はありますか?

4

1 に答える 1

4

AVSampleBufferDisplayLayerはあなたが探しているものだと思います。

これは s をCALayer表示できるサブクラスでCMSampleBufferあり、 と をトレッキングするよりもはるかに高速だと思いUIImageますUIImageView

これは単純なAVSampleBufferDisplayLayer-backedUIView実装です (迅速に):

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 に答える