Локальный AI-монтажёр: как ноутбук разбирает медиатеку и собирает ролик под музыку по текстовому запросу
После поездки осталась сотня роликов с телефона и десяток треков, а монтаж откладывался неделями. Написал приложение, которое само разбирает медиатеку локальной VL-моделью, размечает музыку по тактам и по одной фразе собирает черновой клип на таймлайн. Что умеет, на какие грабли наступил и чего оно делать не будет.
Коротко. После поездки во Вьетнам у меня осталась папка на сотню коротких видео с телефона и десяток треков. Смонтировать из этого минутный ролик руками я откладывал неделями. В итоге написал приложение, которое само разбирает медиатеку локальной нейросетью, размечает музыку по тактам и по одной фразе, вроде «собери динамичный ролик с людьми у воды под этот трек, секунд на шестьдесят», раскладывает клипы на таймлайн. Ни один кадр при этом не уходит в облако. Ниже рассказываю, что оно умеет, какие грабли встретились и чего оно делать не будет.
Проблема, знакомая каждому, кто снимает на телефон
Снимать легко, монтировать тяжело. Не технически, а потому что 99 файлов с именами VID_20260718_093246.mp4 не говорят ничего. Чтобы найти кадр с лодками, нужно открыть половину папки. Чтобы положить склейки в ритм трека, нужно на слух ловить доли и вручную двигать границы. На третьем ролике это надоедает, и папка так и лежит.
Готовые сервисы «AI-монтажа» просят загрузить архив к ним на сервер. Мне не хотелось отдавать личное видео, да и объёмы в десятки гигабайт туда не льются за вечер. Хотелось, чтобы компьютер сам посмотрел все ролики, запомнил, что где, а дальше я командовал словами.
Что делает приложение
Первый шаг: указать папку с медиатекой. Приложение индексирует её и запускает анализ. Каждое видео просматривает локальная визуально-языковая модель (Qwen3.5 через Ollama): берёт несколько кадров, по каждому пишет, что в нём, какие объекты, стиль и настроение, а потом сводит это в описание файла с таймкодами сцен. Ещё модель ставит каждому кадру оценку технического качества. Тёмный, размытый или смазанный движением кадр так и помечается, и потом монтажёр его обходит.
Музыку модель не смотрит, для неё считается другое: темп, доли и такты, паузы и громкие акценты. Всё это один раз складывается в файл метаданных рядом с медиатекой и дальше используется без пересчёта.
Второй шаг: обычный редактор. Три дорожки (видео, музыка, текст), обрезка, разрезание, скорость, затухания, переходы, отмена и повтор, предпросмотр и экспорт в MP4, MOV или WebM. Можно монтировать руками, как в любом простом редакторе.
Третий шаг, ради которого всё затевалось: поле ввода внизу окна. Пишете, что хотите получить, и агент собирает черновик сам: ищет материал по смыслу, а не по имени файла, выбирает нужный момент внутри длинного видео, кладёт границы клипов на доли трека и ставит переходы там, где в музыке действительно есть граница фразы. Дальше вы правите черновик руками или просите переделать.
| Что просите | Что делает агент |
|---|---|
| «кадры с морем и лодками» | ищет по описаниям, а не по названиям файлов |
| «динамичный ролик» | режет по 0,5–1,5 с в быстрых местах трека, длиннее в спокойных |
| «под этот трек» | берёт готовую тактовую сетку и ставит склейки на доли |
| «начни с общего плана, закончи закатом» | использует таймкоды сцен внутри видео и дату съёмки |
| «замени музыку» | удаляет старый трек и кладёт новый на то же место |
Три грабли, на которые я наступил
Первая: медленно. Первая модель, которую я взял, тратила около 25 секунд на кадр. На сотне роликов по пять кадров это часы. Помогла смена модели на более свежую и лёгкую сборку под Apple Silicon: около 7 секунд на кадр при том же качестве описаний. Плюс быстрый режим на совсем маленькой модели для чернового прогона большой библиотеки.
Вторая: агент «работал», но ничего не делал. В первой версии он мог два десятка раз подряд запросить подробности о файлах, ни разу не положив клип на таймлайн, а в конце написать «Монтаж собран». Пришлось переписать инструкцию под цикл «нашёл кадр, положил, следующий», добавить программную подсказку «хватит искать, добавляй», а главное, запретить коду выдумывать успех: если на таймлайне ничего не изменилось, агент так и говорит.
Третья: ритм был хуже, чем у меня руками. Я собрал минутный ролик через внешнего ассистента вручную и сравнил. Оказалось, дело не в модели. Инструкция отправляла треки медленнее 100 BPM «монтировать по фразам», а трек был 99,4. А детектор громких акцентов на плотно смастеренной музыке возвращал пустоту, и модель читала это как «ритма нет». Убрал порог, переделал детектор, и разница пропала.
Что получилось в итоге
На ноутбуке с M1 и 16 ГБ памяти анализ сотни коротких роликов укладывается в пару часов, потом всё мгновенно. Черновик минутного клипа под музыку агент собирает за пару минут и полсотни шагов. Громкость на экспорте приводится к стандарту стриминговых платформ, так что ролики, собранные на разных треках, не скачут по громкости между собой.
Приложение открыто под GPL-3.0: github.com/RychagovSergey/intelligent-video-editor. Запускается как обычное десктопное окно, а те же инструменты монтажа доступны и внешнему ассистенту, например Claude Desktop, через MCP. Как поднять окружение и подключить внешнего ассистента, описано в README репозитория.
Честные ограничения
- Это черновой монтаж. Агент собирает заготовку, которую вы правите. Цветокоррекции, стабилизации, титров с анимацией уровня After Effects здесь нет и не планируется.
- Для агента нужен внешний LLM. Анализ видео полностью локальный, а вот сборка монтажа по запросу идёт через модель с function calling по API (OpenAI или любой совместимый провайдер). Без ключа приложение работает как обычный редактор с умным поиском по описаниям.
- Нужен нормальный ноутбук. 16 ГБ памяти и Apple Silicon или видеокарта, иначе анализ растянется на сутки.
- Описания иногда врут. Модель может назвать пирс «мостом», а закат «рассветом». Для этого в панели метаданных описания и теги правятся руками.
FAQ
Уходит ли моё видео куда-то в интернет? Анализ кадров и музыки идёт на вашем компьютере, файлы никуда не копируются. В облако уходят только короткие текстовые описания и имена файлов, когда агент собирает монтаж через внешнюю модель, и то лишь если вы её подключили.
Сколько это стоит? Приложение бесплатное и открытое. Локальная модель бесплатна. Внешний LLM для агента оплачивается по тарифу провайдера: на один минутный ролик уходит несколько десятков вызовов с короткими текстами, а не видео, так что счёт небольшой.
Работает ли на Windows или Linux? Backend на Python и ffmpeg кроссплатформенные, модели для Ollama есть под все системы. Десктопная оболочка и статические сборки ffmpeg сейчас собираются и проверяются на macOS; на других системах приложение запускается в браузере.
Можно ли обойтись без агента и просто искать кадры словами? Да. Поиск по смыслу работает и без монтажа: «люди у воды вечером» находит нужные файлы даже среди сотен VID_...mp4.