Чтение кадра видео покадрово под iOS

Я ищу способ получить отдельные кадры видео с помощью iOS API. Я пробовал использовать AVAssetImageGenerator, но он, кажется, предоставляет только кадр с точностью до секунды, что слишком грубо для моего использования.

Насколько я понимаю из документации, конвейер AVAssetReader, AVAssetReaderOutput и CMSampleBufferGetImageBuffer я должен уметь делать что-то, но я застрял с CVImageBufferRef. Я ищу способ получить CGImageRef или UIImage, но не нашел его.

Реальное время не требуется, и чем больше я могу придерживаться предоставленного API, тем лучше.

Большое спасибо !

Редактировать: На основе этого сайта: http://www.7twenty7.com/blog/2010/11/video-processing-with-av-foundation и этот вопрос: как преобразовать CVImageBufferRef в UIImage Я подхожу к решению. Проблема, AVAssetReader перестает читать после первого copyNextSampleBuffer , ничего не давая мне (sampleBuffer имеет значение NULL).

Видео доступно для чтения MPMoviePlayerController. Я не понимаю, в чем дело.

11
задан Community 23 May 2017 в 12:08
поделиться