CMSampleBuffer中有多少帧?

wci*_*ciu 3 avfoundation ios cmsamplebufferref

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

我一直试图弄清楚AVCaptureVideoDataOutput中的CMSampleBuffer是否可以包含多个帧.然而,从文档中可以看出,我看到的大多数示例代码似乎与CMSampleBuffer相似,就好像它是单帧一样.我只是误解了这个吗?

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

谢谢

Ste*_*lin 5

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