Получить текущую продолжительность видео из CMSampleBufferRef

Как я могу получить текущую продолжительность записанного видео из CMSampleBufferRef в методе делегата

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

Пожалуйста, укажите пример кода


person Malik Boy    schedule 03.08.2015    source источник


Ответы (1)


Детали, которые вам нужны, находятся в метаданных видео. Чтобы получить метаданные видео, вам может потребоваться преобразовать CMSampleBuffer в CVPixelBuffer.

CMSampleBuffer — непрозрачный тип в стиле Core Foundation; экземпляр содержит буфер выборки для кадра видеоданных. CVPixelBuffer — основные пиксели видео из буфера сэмплов.

Вы можете получить буфер Pixel из буфера образца, используя приведенный ниже CMSampleBufferGetImageBuffer:

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

Получив буфер пикселей, вы можете получить метаданные видео, такие как информация о времени и формате.

Чтобы получить информацию о времени, используйте CMSampleBufferGetPresentationTimeStamp и CMSampleBufferGetDecodeTimeStamp соответственно.

Для получения дополнительной информации прочитайте Представления СМИ

person Bluewings    schedule 17.08.2015