243

Разработка видеоредактора под Android. FineFx

Добрый день, дорогие пикабушники!
С примерно более года назад начал готовиться, разрабатывать тестовые приложения, вспоминать android разработку и т.д. и в январе начал разрабатывать в свободное время видеоредактор, кодовое название решил дать ему FineFx.

Идея - перенести возможности десктоп приложений на экран смартфона и планшета и сделать полноценное редактирование "на зверьке". Проект серьезный, долгий и решил его сделать я один, без помощи в разработке. Единственное, мне будет помогать знакомая с UI и дизайном.
Решил делать свой UI, не пользоваться android, делать все через OpenGL и FFMPEG для зачитывания всех форматов медиафайлов, а рендерить видео с помощью нативных средств Android.
Началось все вот с этой картинки:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Затем сделал оконный лог:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Потом начал делать галерею и меню:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Для сканирование и правильной кодировки метатегов и названий песен в галерее звуков и музыки использовал uchardet и iconv

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Потом кто-то заметил, что меню не пальцевое, сделал вот такое выезжающее меню, по реакции на жесты (алгоритм жестов тоже сам разработал)

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Начал делать плеер медиафайлов. Долго изучал тему, в FFMPEG сделать плеер не так-то просто, распечатал даже файл ffplay.c для изучения:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Работал над редактором все свободное время, даже в электричке по пути на работу и домой:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Сделал плеер, даже с выбором звуковой дорожки:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Потом озаботился профилированием и написал свой профайлер, т.к. плеер достаточно медленно проигрывал видеофайлы:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Потом озаботился локализацией и решил написать свою, а не тягать из JAVA строки все время:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Сделал стартовую страницу с созданием нового проекта и видео на фоне:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Затем сделал окно информации о медиафайле:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Потом сделал Bin, как в премьере для промежуточного редактирования

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

И в данный момент делаю таймлайн, в котором много мелких деталей, которые очень ресурсозатратные:

Разработка видеоредактора под Android. FineFx Android, Видеоредактор, Adobe, Premiere, Kinemaster, Длиннопост, Adobe After Effects

Работа идет "медленно, но непрерывно", так что, дай Бог, где-то через полгодика будет mvp и устрою бета-тест в маркете.


На этом все, спасибо за внимание!

Android Developers

90 постов2K подписчик

Правила сообщества

Друзья!


Давайте адекватно относиться к тематике сообщества. Посты, не удовлетворяющие требованиям канала, будут отклоняться. Разработка под Android - это не только описание того, что надо сделать

(освоить Java / покормить кота / установить студию), но и реальные примеры того, что Вы описываете.