【发布时间】:2011-02-16 22:58:53
【问题描述】:
我正在尝试从视频中提取帧作为图像。使用 UIImagePickerController 录制视频。
录制完视频后,我会获取其 URL 并使用 AVURLAsset 加载它。然后我创建一个 AVAssetReader 和 AVAssetReaderTrackOutput 来获取各个帧。
当我将帧作为 CMSampleBufferRef 获取时,我将它们传递给 Apple 的 imageFromSampleBuffer 方法,该方法应该返回一个 UIImage。当我使用 AVCaptureSession 获取帧时,此方法运行良好,但是当我使用通过 UIImagePickerController 录制的视频时,此行返回 0x0:
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
其中 sampleBuffer 是我通过的 CMSampleBufferRed。
我通过调试器检查了 sampleBuffer 的值,它看起来没问题(不是 0x0)。 CMSampleBufferGetImageBuffer 会返回 0x0 有什么原因吗?
或者还有其他方法可以从 MOV 文件中提取单个视频帧并将其保存为 UIImage?
谢谢。
【问题讨论】:
标签: ios video uiimagepickercontroller frame avfoundation