UIImagePickerController: Получение изображения из видео

Я пытаюсь извлечь кадр из видео как изображение. Видео записывается с использованием UIImagePickerController.

Когда видео записано, я получаю его URL и загружаю с помощью AVURLAsset. Затем я создаю AVAssetReader и AVAssetReaderTrackOutput, чтобы получить отдельные кадры.

Когда я получаю кадры как CMSampleBufferRef, я передаю их методу Apple imageFromSampleBuffer, который должен возвращать UIImage. Этот метод отлично работал, когда я получал кадры с помощью AVCaptureSession, но когда я использую видео, записанное через UIImagePickerController, эта строка возвращает 0x0:

CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); 

Где sampleBuffer - это CMSampleBufferRed, который я передаю.

Я проверил значение sampleBuffer через отладчик, и все выглядело нормально (не 0x0). Есть ли причина, по которой CMSampleBufferGetImageBuffer возвращает 0x0?

Или, альтернативно, есть другой способ извлечь отдельный видеокадр из файла MOV и сохранить его как UIImage?

Спасибо.

5
задан nebs 16 February 2011 в 22:58
поделиться