Tagffmpeg

Ffmpeg — fade transition. Создание анимации из изображений

Оказывается Ffmpeg может помочь решить и эту проблему!

Проблема номер раз — в Android ffmpeg wrapper выпадает без описания ошибки при слишком большом времени обработки, черт его знает почему — на обычном компьютере эта же операция отрабатывает без ограничений.

Я нашел в интернете bash скрипт, который позволяет сделать анимацию из ваших рисунков, собранных в одной папке. Делюсь им с вами.

https://cloud.mail.ru/public/2BNy/HH7Hui6Ko

Сборка библиотеки FFmpeg для Android приложения

Есть не так много библиотек, которые позволяют добавить функционал ffmpeg в ваше Android приложение. А если говорить про отсутствие в проекте NDK, то количество вариантов практически стремится к нулю. Я давно уже познакомился с ffmpeg-android, которую собственно и использую в приложении Selfie Timelapse App, однако все чаще и чаще приходилось сталкиваться с проблемой практически нулевой поддержки разработчиков.

Так, к примеру, ковыряться с библиотекой пришлось впервые, когда понял, что размер проекта меня не устраивает (чуть меньше 30 мегабайт). Оказалось, что в aar файл зашит скомпилированный ffmpeg для архитектур ARM и x86. Так как последних довольно мало (по крайней мере устройства на этой архитектуре мне лично не встречались), то я решил удалить ее поддержку из проекта.

Размер готового файла при этом стал колебаться в районе 20 мегабайт.

После появилось желание обновиться до последней версии ffmpeg (в библиотеке зашита версия 3.0.1). Пришлось очень сильно гуглить, чтобы получить приемлемый результат.

Continue reading

Возня с ImageMagick и FFMPEG

Итак, братцы-акробатцы, я немного поразгребал чудные вещи, которые предоставляет ImageMagick и ffmpeg (конкретно — для morph transition между кадрами) и получил следующие результаты.

Самое простое — это использовать оба этих инструмента вместе. ImageMagick отлично работает с раскадровкой, но в плане создания видеофайла меня настиг фейл. Так что связка такая — сначала в ImageMagick создаем gif’ку с анимацией, которую скармливаем ffmpeg для получения ролика.

К сожалению, внедрить это в приложение на Android это не представляется возможным — порта для imagemagick, который у меня получилось бы внедрить, я не нашел. Увы.

(Что самое обидное — ImageMagick идет в базе на iOS).

Оказалось, что можно хитро извернуться и решить вопрос с помощью одного ffmpeg. Тут есть два подводных камня, каждый из которых мы рассмотрим по отдельности.

Первый — это сама схема. Мы берем раскадровку, к каждому кадру применяем фильтр. В итоге команда для создания становится бесконечно безобразной.

Ну и второй камень — кажется, на параметр filter_complex существует ограничение на количество вводных данных (input). По крайней мере превысить количество рисунков более чем пять у меня не получилось (вылет с соответствующей ошибкой).

Вывод.

Выводы пока делать рано, но отсутствие возможности для маневра очень расстраивает.

Спасибо.