video-production-cli — ИИ-агент монтирует скринкасты через FFmpeg

· 6 мин чтения
ai-agents video-editing ffmpeg cli gemini
📂 Исходный код на GitHub

Go-CLI для агентного монтажа видео со встроенными скиллами: агент смотрит и слушает запись и выбирает правки, CLI исполняет их через FFmpeg, а финальный рендер делается из исходника после вашего одобрения.

video-production-cli — ИИ-агент монтирует скринкасты через FFmpeg

Записать скринкаст — половина дела. Дальше начинаются повторные дубли, неудачные куски в начале и часы перетаскивания клипов на таймлайне. video-production-cli отдаёт эту работу ИИ-агенту: агент просматривает запись, подбирает склейки, собирает предпросмотр, а вы смотрите его и решаете, годится ли монтаж.

Проект открытый, написан на Go и распространяется по лицензии MIT. Разделение ролей простое: решает агент, исполняет CLI. Агент смотрит и слушает видео и выбирает, где резать. CLI делает выбранное через FFmpeg.

Какой агент нужен

Автор советует брать агента, который умеет смотреть видео и слушать звук напрямую, — например Gemini. Расшифровка речи тут не спасает: по тексту легко найти фразу, но невозможно понять, не отрезает ли склейка половину слова, не ломает ли она подачу и не убирает ли что-то важное с экрана. Агент с «глазами и ушами» сам видит и слышит, что происходит в месте стыка.

Установка

Понадобятся Go 1.27.1+, make и FFmpeg с ffprobe версии 7 или новее в PATH. CLI работает локально; агента и доступ к модели вы приносите с собой.

git clone https://github.com/timurkhakhalev/video-production-cli.git
cd video-production-cli
make install

Бинарник ставится в ~/.local/bin. Проверить окружение можно так:

video-production-cli doctor

Затем установите встроенный скилл для своего агента:

video-production-cli skills install --agent gemini

Кроме gemini поддерживаются claude, agy2 и codex; команда без аргумента ставит скилл всем поддерживаемым агентам сразу. Скилл ссылается на инструкции внутри бинарника, поэтому они всегда совпадают с установленной версией.

Как отдать запись агенту

Откройте сессию агента с доступом к записи и вставьте короткое задание:

Edit /path/to/lesson.mp4 with video-production-cli.
First read: video-production-cli skills get core

Remove false starts, repeated takes and long pauses.
Keep the complete explanations and the on-screen demo steps.
Watch and listen to the footage; use the transcript only as a guide.
Check every splice for clipped words and abrupt visual changes.

Use full review mode and send me a preview before the final render.

Длинный урок удобнее разбить на части: для этого есть режим step, где монтаж проверяется кусками. Для короткой записи подойдёт режим full — вся правка проверяется сразу. Скажите агенту, какие фрагменты важны, что выбросить и какие паузы превратить в ускоренные отрывки без звука.

Перед финальным рендером вы смотрите предпросмотр и одобряете правку. Замечания агент вносит по таймкодам из предпросмотра, а CLI сопоставляет их с исходной записью.

Что происходит внутри

Ваша запись + задание
         ↓
Агент смотрит и слушает → пробует склейки → проверяет каждый стык
         ↓
Предпросмотр → ваши правки → одобрение
         ↓
Финальный рендер из исходника + отчёт с проверками
Задача Что CLI даёт агенту
Вырезать дубль, не задев следующую фразу Прослушивание аудио, пробные склейки, короткие аудиофрагменты
Проверить, что видно на экране в месте склейки Облегчённые копии видео, раскадровки, пары полноразмерных кадров
Выбрать куски из длинного выступления Диапазоны сохранения: оставить выбранное, выкинуть остальное
Ускорить паузу или нудный шаг Таймлапсы без звука — только по явной просьбе
Продолжить незаконченный монтаж Файл edit.json со склейками, причинами, статусом проверки и заметками
Проверить готовый файл Длительность, число кадров, согласованность звука и видео, выборочные кадры

Финальный ролик собирается из исходной записи, а не из рабочих копий. После рендера CLI пишет отчёт .verify.json. Он дополняет просмотр готового файла, но не заменяет его.

Попробовать руками

video-production-cli init /path/to/lesson.mp4
cd /path/to/lesson-edit
video-production-cli mode full
video-production-cli status

# Inspect the first minute of the source.
video-production-cli proxy 0 60

# Try a cut without changing the edit. Open and listen to the resulting clip.
# These times are examples: choose boundaries from your own recording.
video-production-cli listen --try 12.4 16.8

# After checking it, save the cut with a reason.
video-production-cli cuts add 12.4 16.8 --reason "Remove the abandoned first take"

# Inspect every join, then render a preview for review.
video-production-cli joins
video-production-cli frames --join 1
video-production-cli listen --join 1
video-production-cli preview

Посмотрели предпросмотр и одобрили правку — остаётся собрать финал:

video-production-cli chunks set all approved
video-production-cli final

Нужны только пара фрагментов из длинной записи? Начните с диапазонов сохранения:

video-production-cli init talk.mp4 --workdir short-edit \
  --keep 100 150 --keep 200 220

Это оставит куски 1:40–2:30 и 3:20–3:40. Дальше их можно подрезать и проверять склейки. Инструмент выбирает кадры, но не перекраивает видео под вертикальный формат.

Границы инструмента

Это стадия чернового монтажа: вырезать лишнее, склеить части записи с совпадающими настройками, ускорить паузы. Титры, эффекты, переходы, зум, вертикальные форматы и чистка звука — отдельный финальный этап в другом редакторе.

Рендер работает с исходниками H.264/AAC. На старте инструмент отклоняет записи с переменной частотой кадров, с ненулевым временем начала потока и части записи с разными настройками. Перед началом запустите doctor — он проверит установку FFmpeg.

Зачем автор его сделал

Автор записывает обучающие скринкасты. Монтаж был тем местом, из-за которого он откладывал запись: час видео мог означать дни в редакторе. Нанятый монтажёр помогал, но склейки всё равно приходилось объяснять словами, собирать таймкоды и внимательно проверять результат.

Первая версия на ИИ работала через расшифровку речи: агент монтировал по тексту, и склейки выходили грубыми. Переход на Gemini, который смотрит и слышит запись сам, всё изменил. Инструмент начинался как обёртка на Python вокруг FFmpeg со скиллом-инструкцией, а после реальных уроков вырос в этот Go-CLI с проверкой каждой склейки и обязательным предпросмотром.

Команды и разработка

У каждой команды есть --help, а с флагом --json — машиночитаемый вывод. Команды сами находят edit.json в текущей папке или в единственной вложенной папке *-edit; можно указать файл явно через --edit PATH.

video-production-cli skills get core --full  # Workflow, commands and edit.json schema
video-production-cli skills list            # Cutting, audio, speed-ups, shorts and review
video-production-cli --help

Для сборки и проверок:

make build       # Build bin/video-production-cli
make test        # Unit, CLI and golden tests
make test-e2e    # End-to-end checks on synthetic media; needs FFmpeg / ffprobe
make vet

Все тестовые файлы синтетические: python3 testdata/generate_fixtures.py пересоздаёт видео для тестов, а make golden — эталонные результаты (Python 3.9+ нужен только для тестов).

Лицензия — MIT.

Источник: https://github.com/timurkhakhalev/video-production-cli