4

这可能是一个愚蠢的问题,但我刚刚开始了解媒体格式和 AVFoundation,所以请耐心等待。

我一直在试图弄清楚来自 AVCaptureVideoDataOutput 的 CMSampleBuffer 是否可以包含多个帧。但是,从文档看来,我见过的大多数示例代码似乎都与 CMSampleBuffer 相关,就好像它是单帧一样。我只是误解了这一点吗?

如果每个缓冲区可以有超过一帧,是否可以获取各个帧并确定它是否是关键帧?

谢谢

4

1 回答 1

6

确实,CMSampleBuffer 可以包含多个样本,其中样本是任意数据。在 AVFoundation 中捕获视频时,样本缓冲区将只包含一个样本。虽然可以包含多个,但这在实践中并没有真正意义。如果您为基于视频的应用程序实时处理图像,情况尤其如此。对于音频,它将包含多个样本。您可以使用 CMSampleBuffer.h 中列出的 CM* 函数对其进行检查

于 2011-12-14T21:26:16.597 回答