2015-05-10 2 views
1

Я работаю над приложением для редактирования видео OSX и имею набор CMSampleBufferRef в массиве, представляющем каждый кадр видео.Воспроизведение CMSampleBufferRef с AVPlayer

Я хочу сделать предварительный просмотр видео с помощью AVPlayer - возможно ли это в этих образцах напрямую в AVPlayer?

Я просмотрел большинство классов AVFoundation. Я знаю, что я могу использовать AVAssetWriter для записи в файл, но хочу этого избежать, поскольку пользователь все равно будет делать больше редактирования (так хорошо иметь необработанные данные кадра).

Любые мысли?

ответ

1

Да, вы можете.

Прежде всего, вы должны преобразовать CMSampleBufferRef в CGImageRef, это позволит вам отображать образцы кадров на экране.

This answer имеет все необходимые коды для этого.

О том, чтобы играть с AVPlayer, я не уверен, что вам действительно нужно это сделать, так как у вас есть полный доступ через CMSampleBufferRefмассив и вы можете преобразовать и сделать эти образцы должным образом, я думаю, не необходимо поставить эти образцы на AVPlayer, вместо этого вы можете сделать непосредственно CGImage по адресу CALayer.

Я надеюсь, что это может вам помочь.

+0

Спасибо за ответ. Означает ли это, что мне нужно будет написать собственный пользовательский плеер для обработки времени каждого кадра и т. Д.? Я хочу, чтобы видео кадры повторялись снова и снова. –

+0

Да, если вам нужно только прорезать кадры, достаточно просто реализовать вручную :) Имейте хороший код. –