Руководство
Как заставить Claude Code автоматически монтировать влог: воспроизводимый процесс
Pieter Levels передал Claude Code материал из поездки, и тот смонтировал ролик примерно на 10 минут. Разбираем, какие инструменты он использовал и как собрать этот процесс самому.
Описанный в статье подход основан на реальном эксперименте, которым Pieter Levels (@levelsio) поделился в X в ноябре 2026 года, оригинальный пост: https://x.com/levelsio/status/2116959423117857026 . Его ответ с пояснением по инструментарию: https://x.com/levelsio/status/2116961807315169718 . Ниже — наш разбор его публикации и инструкция по воспроизведению.
Pieter Levels передал снятый на DJI материал Claude Code, чтобы тот смонтировал влог примерно на 10 минут; сам он внёс лишь несколько правок, а о том, какие именно инструменты тот использовал, узнал уже постфактум.
Этот случай стоит разобрать отдельно, потому что он превращает расплывчатое «AI монтирует видео» в воспроизводимый инженерный процесс.
Что именно он сделал
Вся цепочка выстроена в таком порядке:
- Транскрипция: с помощью mlx-whisper аудио превращается в текст с временными метками
- Выборка кадров: с фиксированным интервалом делаются снимки экрана, которые складываются в одну сетку изображений
- Разделение спикеров: модель ECAPA из SpeechBrain определяет, кто произносит каждую фразу
- Решение: Claude одновременно читает текст транскрипции и сетку изображений и решает, какие отрезки времени оставить
- Вывод: генерируется JSON-список монтажа, а не сразу смонтированное видео
- Рендеринг: по списку выполняется нарезка и склейка через ffmpeg
- Дополнение: OpenCV с YuNet создаёт миниатюры лиц, Pillow рисует вступительные титры
Ключевые — шаги 4 и 5. Модель делает не «монтаж видео», а «читает два набора структурированных данных и выдаёт решение о монтаже».
Почему этот дизайн работает
А можно ли просто скормить видео модели? Технически можно, но затраты выйдут из-под контроля. Если считать часовой материал по кадрам, число токенов будет астрономическим.
Этот процесс выполняет два сжатия:
Первое сжатие — на стороне аудио. Час устной речи превращается примерно в десять с лишним тысяч символов, и модели читать это дёшево. Временные метки сохраняются, поэтому она знает, где в видео находится каждая фраза.
Второе сжатие — на стороне изображения. Кадры, выбранные через равные интервалы, складываются в сетку, и на одной картинке видно изображение из нескольких моментов времени. Модель по картинке понимает, «этот отрезок — прогулка» или «здесь есть пейзаж», и ей не нужно смотреть непрерывные кадры.
После двух сжатий исходный материал на несколько часов превращается во вход, который модель может прочитать за один раз, и стоимость решения становится приемлемой.
Если собирать самому, порядок важен
Шаг первый: сначала хорошо сделать транскрипцию
Отделите звуковую дорожку и превратите её в текст с временными метками. Качество этого шага определяет все последующие решения.
Для влогов с преобладанием устной речи точность транскрипции напрямую влияет на то, сможет ли модель распознать границы «эта мысль закончилась». На материале с шумовым фоном в транскрипции теряются слова, и отрезки, вырезанные моделью по ним, легко обрываются на середине фразы.
Шаг второй: продумать формат списка монтажа
Модель должна выдавать не естественный язык вроде «оставить с 00:12 до 01:47», а JSON с фиксированной схемой:
{
"segments": [
{"start": 12.4, "end": 107.2, "reason": "прибытие в гостевой дом, знакомство с комнатой"},
{"start": 340.1, "end": 402.8, "reason": "таймлапс заката у моря"}
],
"total_duration": 596.1
}
При наличии фиксированного формата скрипт может использовать его напрямую, без разбора естественного языка. В поле добавляется reason, чтобы при ручной проверке было понятно, почему оставлен каждый фрагмент.
Шаг третий: отдать рендеринг ffmpeg
Модель выдаёт только решения, а нарезка и склейка выполняются через ffmpeg. Так каждый этап можно отлаживать отдельно: если решение о монтаже неверное — изменить промпт или сменить модель, если изображение не то — проверить параметры ffmpeg.
Минимальный пример нарезки по списку и последующей склейки:
# нарезка по списку, фрагмент за фрагментом
ffmpeg -ss 12.4 -to 107.2 -i input.mp4 -c copy seg_01.mp4
# склейка
printf "file 'seg_01.mp4'\nfile 'seg_02.mp4'\n" > list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4
-c copy не выполняет повторное кодирование, и скорость на несколько порядков выше. Условие — одинаковые параметры кодирования у всех фрагментов, поэтому перед нарезкой один раз унифицируйте параметры кодирования.
Шаг четвёртый: отдать решение модели
На этом шаге достаточно подключить HiAPI. Настройка Claude Code описана в Claude Code и Codex подключаются к HiAPI; после настройки Key рассуждения, выполняемые в Claude Code, идут через Opus 5.5 (вход $2.02, выход $10.08 за миллион токенов).
Для часового материала с текстом транскрипции и несколькими десятками сеток изображений вход составит примерно двадцать-тридцать тысяч токенов. По входной цене Opus 5.5 стоимость одного полного решения — от нескольких центов до примерно одной десятой юаня. По сравнению с человеко-часами ручного монтажа часового материала этот порядок величин не требует сомнений.
Можно переиспользовать в других сценариях
Та же структура с другим источником входных данных — уже другой продукт:
| Сценарий | Вход | Цель монтажа |
|---|---|---|
| Нарезка подкастов | Длинное аудио + транскрипция | Выделить мысли, которые могут стать отдельным фрагментом |
| Обзор встреч | Запись экрана + транскрипция | Сохранить решения и задачи |
| Тщательный монтаж курсов | Видео лекции | Убрать паузы и повторы |
| Нарезка интервью | Несколько камер | Перекомпоновать по темам |
Промпты для каждой категории разные, но каркас «транскрипция → сжатие → решение → рендеринг» один и тот же.
Подводные камни
Смещение временных меток. База временных меток транскрипции у разных инструментов может различаться на десятки миллисекунд, из-за чего в начале вырезанного фрагмента пропадают слова. Решение — сначала откалибровать на коротком материале.
Модель склонна оставлять слишком много. При первом прогоне она часто режет недостаточно решительно, и результат получается длиннее целевой длительности. В промпте явно укажите целевую длительность и скажите, что при превышении нужно выбирать заново.
Точка нарезки попадает в середину фразы. Если дать модели только временные метки, она может разрезать на середине предложения. Передайте ей вместе с метками границы предложений транскрипции, чтобы она выбирала по ним.
Повторное кодирование занимает время. Если параметры кодирования фрагментов различаются, -c copy завершится ошибкой и произойдёт откат к повторному кодированию, а часовой материал будет обрабатываться очень долго. Шаг унификации параметров пропускать нельзя.
Частые вопросы
Обязательно ли использовать Claude Code?
Не обязательно. Любая модель, способная читать длинные тексты и выдавать JSON по схеме, может выполнять этот этап принятия решений. Преимущество Claude Code в том, что он сам пишет скрипты, запускает ffmpeg, смотрит результаты и корректирует их, экономя ваше время на ручную связку процессов.
Можно ли запустить mlx-whisper без чипа Apple?
Нет, mlx — это фреймворк Apple. На машинах не от Apple замените его на faster-whisper или whisper.cpp, логика та же.
Сколько времени занимает весь процесс?
Основная часть — транскрипция материала: часовой материал на чипах серии M обрабатывается примерно от десяти-двадцати минут до нескольких десятков минут в зависимости от размера модели. Этап принятия решений — несколько минут. При рендеринге с -c copy всё происходит быстро.
Можно ли использовать результат сразу?
Сам Levels говорит, что внёс несколько правок. Автоматический процесс решает самую трудоёмкую часть — «выбрать десять минут из нескольких часов материала», а темп в деталях и переходы быстрее настраивать вручную.
Ключевой вывод
Суть того, что этот процесс работает, не в том, насколько умна модель, а в том, что видео превращается в данные, которые модель может себе позволить прочитать. Транскрипция сжимает аудио, сетка выбранных кадров сжимает изображение, модель только принимает решение о выборе фрагментов, а рендеринг возвращается ffmpeg. Если хотите воспроизвести, начинайте с шага «превратить материал в текст с временными метками», остальное — инженерная работа.
Источники
- Оригинальная публикация: Pieter Levels (@levelsio), https://x.com/levelsio/status/2116959423117857026
- Пояснение по инструментарию (ответ автора): https://x.com/levelsio/status/2116961807315169718
- Разбор процесса, примеры кода и замечания в этой статье подготовлены командой HiAPI и не являются контентом оригинального автора
Похожие статьи
Все статьи →-
Руководство
Примеры Recraft Creative Upscale: увеличение пейзажей и акварели
Посмотрите изменения текстур деревянного дома, озера и акварельного городка, отличите полный результат от предпросмотра и проверьте перерисованные детали.
-
Руководство
Недействительный ключ OpenAI API: 401, переменные окружения и проверка конфигурации проекта
Различайте OpenAI 401, 403 и 429, проверяйте переменные окружения, настройки организации и проекта, а также проверяйте учётные данные запросом только на чтение.
-
Руководство
Kling 4.0: полный набор промптов — 6 сценариев, которые можно скопировать и сразу получить видео
Товары для электронной коммерции, еда, пейзажи путешествий, бытовые зарисовки, пустые кадры со звуком и видео из изображения — для каждого сценария есть реальное готовое видео, полный промпт и ссылка с автозаполнением.