Простой видеоредактор на Jetpack Compose и Media3 без рекламы и трекеров

16 авг 2026
711
42
8
3 месяца
Feature graphic

Каждый раз, когда нужно обрезать короткое видео на Android или убрать из него звук, начинается квест. В Google Play большинство редакторов сразу требуют подписку, лепят водяной знак на пол-экрана или заставляют смотреть рекламу казино. Встроенные редакторы в галереях часто пережимают файл до неузнаваемости.

Недавно наткнулся на open-video-editor от разработчика devhyper. Это лаконичное приложение под лицензией GPLv3, написанное полностью на Kotlin с использованием современного стека Android-разработки.

Что умеет приложение

Проект не пытается конкурировать с тяжелыми мобильными комбайнами вроде CapCut. Здесь фокус сделан на базовых манипуляциях, которые нужны каждый день:

  • Обрезка видео по таймлайну (Trim)
  • Обесцвечивание кадра (фильтр Grayscale)
  • Изменение разрешения и масштабирование (Scale, Resolution)
  • Поворот видео на 90, 180 или 270 градусов (Rotate)

Phone screenshot 1 Phone screenshot 2 Phone screenshot 3 Phone screenshot 4

Интерфейс сделан прямолинейно: выбираете файл из галереи, двигаете ползунки, нажимаете кнопку сохранения. Никаких профилей, регистрации или скрытых покупок.

Реклама

Как устроен проект внутри

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

Раньше работа с видео на Android превращалась в головную боль: приходилось либо оборачивать тяжелые C++ сборки FFmpeg через NDK, либо страдать с низкоуровневым MediaCodec. Здесь автор взял официальную библиотеку Media3 Transformer от Google.

Media3 Transformer берет на себя аппаратное кодирование и декодирование, синхронизацию дорожек и наложение графических эффектов через OpenGL шейдеры. Если посмотреть в исходники, обработка видео укладывается в лаконичные вызовы:

val editedMediaItem = EditedMediaItem.Builder(mediaItem)
    .setEffects(
        Effects(
            listOf(audioProcessor),
            listOf(presentation, rgbFilter)
        )
    )
    .build()

val transformer = Transformer.Builder(context)
    .setVideoMimeType(MimeTypes.VIDEO_H264)
    .build()

transformer.start(editedMediaItem, outputPath)

Интерфейс целиком сверстан на Jetpack Compose. Кодовая база чистая, без нагромождения слоев и устаревших XML-разметок. Это хороший референс, если вам нужно прикрутить простую обработку видео в свой проект и не хочется изобретать колесо.

Где взять и как запустить

Проект распространяется через F-Droid, IzzyOnDroid, Google Play и в виде APK-релизов на GitHub.

Если хотите поковыряться в коде или собрать проект локально, достаточно стандартного клонирования:

git clone https://github.com/devhyper/open-video-editor.git

Проект открывается в последней версии Android Studio и собирается без специфических внешних зависимостей или закрытых ключей API.

Кому проект пригодится

Если вам нужна легковесная утилита без трекеров на личный телефон, open-video-editor закрывает базовые потребности нарезки и поворота роликов.

Если вы пишете под Android, проект послужит наглядным примером работы с Jetpack Media3 Transformer. В официальной документации Google примеры часто перегружены, а тут можно посмотреть на рабочий продакшен-код небольшого законченного приложения.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.