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

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

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

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

Ниже предлагаю вашему вниманию пошаговую инструкцию как скомпилировать самому последнюю версию ffmpeg в aar файл, который вы сможете добавить в свой проект. Сразу укажу — я выполнял все на макбуке, какие будут результаты для других систем — не знаю.

  1. Следуйте инструкциям из этого репозитория https://github.com/Yelp/ffmpeg-android. В результате вы получите бинарник ffmpeg.
  2. Клонируйте репозиторий https://github.com/WritingMinds/ffmpeg-android-java. С его помощью вы получите готовый aar файл для конкретной архитектуры (бинарник для которой вы сделали на первом шаге).
  3. После разворачивания проекта выполните команду ./gradlew assembleRelease
  4. Нужную вам библиотеку AAR вы найдете в папке build/outputs/aar
Если на втором шаге вы получите ошибку
Error:(2, 0) No service of type Factory LoggingManagerInternal available in ProjectScopeServices.

То обновите версию для плагина android-maven-gradle-plugin. Узнать последнюю версию вы сможете в репозитории плагина https://github.com/dcendents/android-maven-gradle-plugin

Вот и все.

Кстати, размер AAR библиотеки после всех этих манипуляций еще больше уменьшился, в итоге проект стал весить меньше 10 мегабайт.

P.S. Готовые aar библиотеки можно скачать тут https://github.com/sashatinkoff/ffmpeg-for-Android-compiled

Оригинал на isidroid.com

Show your support

Clapping shows how much you appreciated sashatinkoff’s story.