0

如何在委托方法中从 CMSampleBufferRef 获取当前录制的视频持续时间

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection;

请用示例代码指导

4

1 回答 1

0

您需要的详细信息在视频元数据中。要获取视频元数据,您可能需要将其转换CMSampleBufferCVPixelBuffer.

CMSampleBuffer是 Core Foundation 风格的不透明类型;一个实例包含一帧视频数据的样本缓冲区。 CVPixelBuffer是来自采样缓冲区的核心视频像素。

您可以使用以下方法从样本缓冲区中获取像素缓冲区CMSampleBufferGetImageBuffer:

CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(<#A CMSampleBuffer#>);

获得像素缓冲区后,您可以获得视频元数据,如时间和格式信息。

要获取时间信息,请分别使用CMSampleBufferGetPresentationTimeStampCMSampleBufferGetDecodeTimeStamp

欲了解更多信息,请阅读媒体表示

于 2015-08-17T07:30:47.283 回答