Реализация AI-редактирования видео в мобильном приложении
Заказчик присылает запись интервью: 15 минут, тридцать пауз и «эм» через слово. Вручную вырезать — потерять час. Наш AI-пайплайн делает это за 30 секунд. Мы реализовали авторезку, замену фона, цветокоррекцию и умный рефрейм для iOS и Android. В этой статье — как это работает технически.
Какие задачи решает AI-редактирование
AI-редактирование видео — не магия, а набор конкретных алгоритмов: автоматическое удаление пауз и слов-паразитов, замена фона, цветокоррекция по референсу, умная обрезка под вертикальный формат. Каждая требует своего стека и архитектуры. Рассмотрим ключевые.
Как работает авторезка пауз?
Пользователь записывает разговорное видео. Мы транскрибируем аудио через Whisper API или Deepgram, получаем JSON с таймкодами каждого слова. Затем находим паузы длиннее 0.5 сек и слова из стоп-листа («эм», «ну», «как бы»). Генерируем FFmpeg cut-list и собираем итоговое видео.
# Backend: генерация FFmpeg фильтра из транскрипции Whisper
def build_cut_filter(transcript_words, pause_threshold=0.5, filler_words=None):
filler_words = filler_words or {"эм", "ну", "вот", "как бы", "типа"}
segments_to_keep = []
prev_end = 0.0
for i, word in enumerate(transcript_words):
gap = word["start"] - prev_end
if gap > pause_threshold:
pass
if word["word"].lower().strip(".,!?") in filler_words:
continue
segments_to_keep.append((word["start"], word["end"]))
prev_end = word["end"]
filter_parts = "+".join(
f"between(t,{s},{e})" for s, e in merge_segments(segments_to_keep, gap=0.05)
)
return f"select='{filter_parts}',setpts=N/FRAME_RATE/TB"
Whisper с параметром word_timestamps=True даёт точность ±20 ms — достаточно для плавных склеек. На мобильном устройстве видео загружается на сервер, запускается задача, результат скачивается. Воспроизводим через AVPlayer или ExoPlayer.
Почему замена фона на мобильном — сложная задача?
Для статичной камеры используем MediaPipe Selfie Segmentation — работает в реальном времени (30 fps) на современных устройствах. Для движущейся камеры с несколькими людьми — серверная обработка через SAM 2 (Segment Anything Model 2).
MediaPipe на Android:
val options = ImageSegmenterOptions.builder()
.setBaseOptions(BaseOptions.builder().useGpu().build())
.setOutputCategoryMask(false)
.setOutputConfidenceMasks(true)
.build()
val segmenter = ImageSegmenter.createFromOptions(context, options)
Результат — маска уверенности от 0 до 1. Применяем к каждому кадру через Metal (iOS) или Vulkan (Android). Для 1080p 30fps GPU обязателен — CPU не тянет. Серверная обработка через SAM 2 даёт лучшее качество, но занимает 2–5 минут на минуту видео даже на A100.
Умная обрезка под формат (Auto Reframe)
Конвертация 16:9 в 9:16 с умным кропом — задача трекинга объектов. На мобильном устройстве:
- Face detection по каждому ключевому кадру (каждые 0.5 сек) —
VNDetectFaceRectanglesRequestна iOS - Построение траектории движения субъекта
- Плавное панорамирование с ease-функцией
- FFmpeg
cropфильтр с динамическими параметрами
# FFmpeg: кроп с движением (x меняется от 0 до 540 за 10 сек)
ffmpeg -i input.mp4 \
-vf "crop=608:1080:'min(max(cx-304,0),672)':0" \
-c:v libx264 output_9x16.mp4
cx — x-координата субъекта из трекинг-данных. На сервере Python-скрипт генерирует FFmpeg-команду, выполняет и возвращает результат.
AI-цветокоррекция
По референс-фото применяем CinematicLUT через Core Image на iOS (около 100 мс на кадр). По текстовому описанию («сделай как золотой час») — вызов к серверу с генерацией LUT через Stable Diffusion + ControlNet. Готовый .cube файл применяем к видео через FFmpeg: -vf lut3d=lut_file.cube.
Мобильный редактор: архитектура
Timeline editor — нетривиальная UI-задача. Минимальный стек:
- iOS:
AVMutableCompositionдля треков,AVVideoCompositionдля эффектов,AVAssetExportSessionдля экспорта - Android:
MediaCodec+MediaMuxerдля низкоуровневой обработки илиMedia3 Transformer(рекомендуем)
Media3 Transformer позволяет применять обрезку, изменение скорости, цвета в одном проходе с GPU-ускорением через OpenGL ES. Это проще, чем самостоятельная работа с MediaCodec.
Архитектура timeline в деталях
Timeline строится на слоях: видео-дорожка, аудио-дорожка, слой эффектов. Каждый клип — объект с временной шкалой. Эффекты (обрезать, ускорить, заменить фон) применяются через AVVideoComposition или Media3 Transformer. Мы используем паттерн Command для истории изменений.
Сравнение подходов: on-device vs сервер
| Критерий | On-device (MediaPipe, Core Image) | Сервер (Whisper, SAM 2, FFmpeg) |
|---|---|---|
| Задержка | Реальное время (30 fps) | 2–5 минут на минуту видео |
| Качество | Хорошее для типовых сцен | Отличное, даже сложные сцены |
| Зависимость | GPU устройства | Интернет, GPU сервера |
| Стоимость | Бесплатно (вычисления на устройстве) | Оплата API или аренда GPU |
Выбор зависит от задачи: для массовых функций (авторезка) подходит сервер, для редактирования в реальном времени — on-device.
Что входит в работу по созданию AI-редактора
Мы предоставляем результат «под ключ»:
- Исследование и выбор оптимального стека под вашу задачу
- Реализация backend (Python/FastAPI, Whisper, FFmpeg) и mobile SDK (iOS/Android)
- Интеграция с существующим приложением (код, зависимости, документация)
- Настройка StoreKit 2 / Billing 6 для подписок, если нужны
- Тестирование на 10+ реальных устройствах
- Загрузка в App Store и Google Play (помощь с Review Guidelines)
- Гарантия стабильной работы 3 месяца после запуска
Наш опыт: 5+ лет в мобильной разработке, 20+ проектов с видео и AI, сертифицированные специалисты Apple и Google. Мы гарантируем качество и соблюдение сроков.
Сроки и стоимость
- Одна функция (авторезка или замена фона) — 1–2 недели
- Полноценный редактор с несколькими функциями, timeline и экспортом — 6–10 недель
- Стоимость рассчитывается индивидуально после анализа требований. Напишите нам — мы оценим ваш проект за 2 дня.
Закажите разработку AI-редактора видео для вашего мобильного приложения. Получите консультацию по техническим деталям и срокам.







