4

如何实现为本地存储的视频中的每一帧触发的委托?我试过AVCaptureVideoDataOutputSampleBufferDelegate了,但它不适用于本地存储的视频。有没有其他方法可以做到这一点,或者我可以使用 virtualAVCaptureDevice吗?

4

2 回答 2

1

AVCapture_ _方法都适用于相机类型的东西,磁盘上的电影文件肯定不是。

我怀疑你真正在寻找的是类似于iOS 6.0 中的" AVPlayerItemVideoOutput" 类。

虽然它有一个委托协议,但我还没有使用过这个新的对象或协议,我不知道像“ outputSequenceWasFlushed”这样的委托方法是否真的对你有用)。关于该类的一件事AVPlayerItemVideoOutput是,它就像您可以获取这些项目的像素缓冲区(即,对于电影来说,这些项目将是帧)。

于 2012-10-03T06:46:06.507 回答
0

你可以看看这些: https ://ar.qualcomm.at/support_file/download/iOS/videoplayback%20sample%20app/vuforia-videoplayback-ios-1-0-2.zip

它实现了你想要的东西。它依赖于AVAssetReader您可以使用AVAssetReaderOutput -> copyNextSampleBuffer方法。

您可以根据视频资产的帧速率为播放的每一帧设置一个计时器,在计时器中,您可以检索前面提到的由copyNextSampleBuffer检索到的CMSampleBufferRef,它也可以从 iOS4.x 获得

于 2012-11-24T00:37:50.270 回答