Я использую AVAssetWriter для кодирования серии изображений в файл фильма, после ответа Zoul здесь: Как экспортировать массив UIImage в качестве фильма?.
Короче мой процесс:
- создать UIImage из файла .png
- Получить CGImage из UIImage
- конвертировать CGImage в CVPixelBuffer (с помощью функции zoul function pixelBufferFromCGImage)
- записать кадры в .mov с помощью AVAssetWriterInputPixelBufferAdaptor и AVAssetWriter
В большинстве случаев это нормально работает, однако иногда файл .mov, который закодирован, искажен (см. рисунок ниже). Мне было интересно, знаком ли этот тип изображения с искаженным изображением кому-либо, и если есть какой-то шаг, который я мог бы сделать при кодировании фреймов, которые могли бы вызвать это. Проблема возникает, когда исходные изображения, которые я использую, генерируются вызовами в Titanium для ImageView.toBlob(). Помимо титановой стороны, любые подсказки о том, как может выглядеть этот тип результата, будут большими!
Спасибо, Александр
Экран из фильма: http://tinypic.com/view.php?pic=8wkqys&s=7
Исходное изображение: http://commons.wikimedia.org/wiki/File:Phalaenopsis_(aka).jpg