ru24.pro
Новости по-русски
Октябрь
2018

FineFx. Самостоятельная разработка видеоредактора (композера)

0
D3.ru 

http://finefx.org

Добрый вечер!
Решил написать на d3 пост, т.к. история уже довольно старая, длится года два, если не больше, и есть о чем рассказать.
Начнем с того, что я программист, но мне никогда не нравилось заниматься чем–то одним, всегда смотрел в стороны, может поэтому не состоялся, как программист, работал где попало, сейчас работаю в п/я. В прошлом полюбил видеомонтаж, прошел курсы в Америке, прочитал несколько книжек, в том числе трехтомник Соловьева, смонтировал несколько свадеб (хотя, тема стремная, не показатель, тем более, что монтаж клиповый, можно под музыку что угодно насовать), освоил с нуля афтер эффектс по туториалам Эндрю Крэмера и вообще большой фанат Кирьяка.
Ну и да, поскольку аппарат у меня Самсунг, то и система андроид. Хотел восстановить старые умения, но озадачился: под телефон нет ни одного достойного редактора. Композеров вообще нет. Ни кинемастер, ни пауэр директор, все какие–то ущербные, в одном одного нет, в другом другого, функциональность на нуле. Простое видео можно смонтировать, но если захотел удобства, привычного с десктопа, или чего–то большего — идите лесом.
Вот я и задумал, напишу–ка я нормальный видеоредактор, чтобы людям было в чем видео монтировать. А заодно и композить, сочетать несочетаемое, привнести функциональность десктопа в мобильное приложение.
Ну и начал примерно более года назад, начал вспоминать Андроид, начал ставить эксперименты, чтобы не облажаться где–то в середине разработки, купил несколько статей по Motion Estimation, сделал тестовое приложение, добился кадра в секунду на фулэйчди. Обрадовался и где–то с начала года начал разработку.
Решил пользоваться FFMPEG для проигрывания и зачитывания ВСЕХ форматов медиафайлов, а рендерить интерфейс и видео с помощью OpenGL, в том числе шейдерами.

Сначала был один символ, потом сделал оконный лог, работал все свободное время, даже в электричке, по пути на работу, потом сделал галерею медиафайлов и меню, для зачитывания метатегов и правильной кодировки использовал uchardet и iconv, потом в телеграм канале заметили, что меню непальцевое, я напрягся и сделал выезжающее меню кольцом, блюрящим экран, все свободное место экрана — под редактор. Никаких сендвич меню и прочего.
Искал в интернете алгоритмы жестов, в результате разработал свой, на скалярном произведении, работает хорошо.
Затем озаботился плеером видео. Долго курил тему, читал форумы, т.к. сходу это не получилось, там важно и вовремя все зачитывать, и звук с видео синхронизировать, и прочее и прочее, распечатал даже файл ffplay.c из поставки FFMPEG, ужаснувшись его объему. Наконец, все сделал по уму и все заработало, даже с выбором звуковой дорожки в видео. Видео проигрывалось недостаточно плавно, но вот беда, в Андроид Студио нет профайлера для нейтив кода, пришлось написать свой. Сделал инфо об открываемом файле. Заморочился перевести программу на 6 языков, причем не использовать стандартную локализацию Андроид, а сделал свою, переключаемую на лету. Сделал бин, как в премьере, для промежуточного редактирования, и в данный момент пилю таймлайн, который очень ресурсозатратный, в него, как и в бин, можно перетаскивать сразу набор файлов из галереи и из бина, и за один заход можно будет делать слайдшоу.

Работы еще много, до mvp не меньше полугода, когда устрою бетатест в маркете.
Надеюсь, понравилось, спасибо за внимание, у меня все.

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

Написал turbik на android.d3.ru / комментировать