Впровадження редагування відео з штучним інтелектом в мобільному додатку
AI-редагування відео — широкий термін, який на практиці розпадається на кілька окремих функцій: автоматичне видалення пауз та слів-паразитів, заміна фону, кольорокорекція за референсом, розумний кроп під формат, автонарізка хайлайтів. Кожна функція вимагає свого технічного рішення.
Автовирізка пауз та слів-паразитів
Це, мабуть, найбільш затребувана функція для контент-мейкерів. Користувач записує розмовне відео, AI видаляє всі паузи довше 0.5 сек та слова «еге», «ну», «як би».
Пайплайн:
- Транскрибуємо аудіо через Whisper API (OpenAI) або Deepgram
- Отримуємо JSON з timestamps кожного слова
- Знаходимо паузи та слова зі стоп-листу
- Генеруємо 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"]
# Конвертуємо в FFmpeg select/aselect фільтр
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 мс — достатньо для плавних cuts. На мобільному: завантажуємо відео, запускаємо backend-задачу, отримуємо оброблений файл. Все оброблене відео відтворюємо через AVPlayer/ExoPlayer.
Заміна фону у відео
Складніше, ніж звучить. Для статичної камери — portrait segmentation через MediaPipe Selfie Segmentation (30 fps real-time на сучасних пристроях). Для рухомої камери з об'єктами — SAM 2 (Segment Anything Model 2) через API.
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/Vulkan, замінюємо фон на статичне зображення або відеофон. При 1080p 30fps — вимагає GPU рендерингу, CPU не впорається.
Серверна обробка (SAM 2): найкраща якість для складних сцен, але 2–5 хвилин на хвилину відео навіть на A100.
Розумний кроп (Auto Reframe)
Конвертація 16:9 в 9:16 з розумним кропом — завдання object tracking. Adobe Premiere Pro називає це Auto Reframe. На мобільному реалізуємо через:
- Детекція обличчя за keyframe (кожні 0.5 сек) —
VNDetectFaceRectanglesRequest - Побудова trajectory руху суб'єкта
- Плавне панорамування кадру з EasingCurve (не різкі jump cuts)
- 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-координата суб'єкта з tracking data. Реалізація: Python-скрипт на backend генерує FFmpeg команду з потрібними параметрами, виконує її, повертає результат.
AI кольорокорекція
За референс-фото — CinematicLUT через Core Image на iOS (100 мс на кадр). За текстовим описом («зроби як ранковий золотистий час») — виклик до backend із LUT-генерацією через Stable Diffusion + ControlNet Color Pipeline.
Терміни
Видалення пауз/слів-паразитів + UI відтворення — 5–7 днів. Мультифункція (reframe, фон, кольорокорекція) з FFmpeg backend інтеграцією — 3–4 тижні. Продуктивне real-time видалення фону — додаткові 2 тижні.







