
Статья · 12 минут
Монтаж рилсов в Claude Code
Как превратить сырое видео в рилс с помощью AI: вырезать паузы и дубли, добавить русские субтитры и проверить результат. С промптами и примерами реального монтажа.
Я снимаю рилс на телефон, кладу сырое видео в папку и пишу Claude Code одну команду. Он вырезает паузы и неудачные дубли, придумывает графику под слова, ставит субтитры, сам проверяет кадры и собирает готовый ролик под Instagram* Reels.
Сколько это занимает у меня: 5 минут на съёмку и около 15 минут на промпт, два моих решения по ходу и финальный рендер.
Последний рилс, собранный так: сырое видео 1:47, готовый рилс 0:37,8, 13 склеек, 9 клипов графики, субтитры на русском. Во второй версии того же рилса Claude добавил цветокоррекцию, слежение камеры за лицом и звуковой слой. Монтажку я не открывал.
Открыть крупнее ↗
Открыть крупнее ↗В этом гайде открыто всё, что нужно для первого результата: принцип, инструменты, набор скиллов, вырезка пауз и дублей, субтитры. Цвет и звук я показываю в разделе 7, а как это настроено и систему целиком разбираю в видеоуроке клуба (раздел 8).
1. Проблема
Рилс с говорящей головой почти всегда монтируется одинаково:
- найти и вырезать паузы;
- найти оговорки и выбрать лучший из нескольких дублей;
- расставить субтитры и проследить, чтобы они не закрывали лицо;
- добавить графику, которая показывает то, о чём я говорю;
- выгрузить файл так, чтобы Instagram* его не испортил.
Творческой работы тут немного. Основное время уходит на рутину, которая повторяется в каждом ролике.
Встроенные ИИ-функции в редакторах решают отдельные куски: авто-субтитры, удаление тишины. Но стиль у них общий для всех, правки не запоминаются, а связать шаги в один процесс нельзя.
Мне нужно было другое: отдать сырое видео и получить рилс в моём стиле, который я проверяю, а не собираю руками.
2. Как это работает
Главная мысль: Claude не монтирует по таймлайну. Он превращает видео в данные, принимает решения текстом, а режут и рендерят обычные инструменты.
Открыть крупнее ↗Уши: транскрипт. Речь переводится в текст, где у каждого слова есть время начала и конца. Для Claude это и есть таймлайн. Так выглядит начало транскрипта моего рилса:
{ "text": "Этот", "start": 0.843, "end": 1.44 },
{ "text": "рилс", "start": 1.44, "end": 1.68 },
{ "text": "я", "start": 1.68, "end": 1.88 },
{ "text": "не", "start": 1.88, "end": 2.04 },
{ "text": "монтировал.", "start": 2.04, "end": 2.62 }
Ножницы: список склеек. Claude записывает, какие отрезки убрать, в секундах исходника. Режет ffmpeg. Сам исходник никогда не меняется, поэтому любое решение можно отменить.
Графика: HTML-страницы. Каждая сцена с графикой — это веб-страница с анимацией. Движок HyperFrames открывает её в Chrome и снимает кадр за кадром в видео. Claude хорошо пишет HTML, поэтому графику он делает сам.
Глаза: контакт-листы. Claude не смотрит видео целиком. Он нарезает кадры готового ролика в одну картинку, смотрит на неё и находит ошибки: текст закрыл лицо, плашка вылезла за край, субтитры наехали на графику.
Ушей нет. Claude не слышит. Громкость, музыку и склейки по интонации проверяю я сам. В моём проекте Claude обязан писать это в конце каждого отчёта.
Путь одного рилса: сырое видео → транскрипт → вырезка пауз и дублей → чистое видео → графика и субтитры → проверка по кадрам → готовый файл.
3. Инструменты и сколько они стоят
| Инструмент | Зачем | Стоимость |
|---|---|---|
| Claude Code | Агент, который читает транскрипт, принимает решения и запускает остальные инструменты | Нужна подписка Claude (Pro или выше) или API-ключ Anthropic |
| ffmpeg | Режет и склеивает видео, вшивает субтитры, кодирует под Reels | Бесплатно |
Транскрипция: OpenAI Whisper (whisper-1) | Текст речи с таймкодом каждого слова | $0,006 за минуту аудио: двухминутный исходник стоит около цента |
| Транскрипция: ElevenLabs Scribe | То же, что Whisper. Явно пишет паузы и «э-э», ручной сверки меньше | Платно, по тарифу ElevenLabs |
| HyperFrames | Движок, который превращает HTML-анимацию в видео | Бесплатно, открытый код |
| Node.js 22+, Google Chrome | Нужны HyperFrames для рендера | Бесплатно |
Монтаж и рендер работают локально на компьютере. Звук отправляется на транскрипцию, а запросы, транскрипт и кадры для проверки — в Claude. У меня Mac, установка через Homebrew.
Для разделов 5 и 6 хватит трёх вещей:
brew install ffmpeg
curl -fsSL https://claude.ai/install.sh | bash
И ключ OpenAI для транскрипции. Ключ кладите в файл .env в папке проекта
(OPENAI_API_KEY=...), а не в чат с Claude.
4. Набор скиллов
Скилл — это папка с инструкцией и скриптами, которую Claude Code подхватывает
сам, когда задача подходит. Скиллы лежат в проекте в .claude/skills/. Чтобы
поставить скилл, достаточно скопировать его папку туда.
В моём проекте 22 скилла. 15 пришли из открытого набора HyperFrames Student Kit, 6 я взял из других открытых репозиториев, 1 написал сам.
Открыть крупнее ↗Монтаж
| Скилл | Что делает | Откуда |
|---|---|---|
cut-silences | Вырезает паузы и тишину в начале и конце | Student Kit |
cut-mistakes | Находит оговорки, заикания и повторные дубли | Student Kit |
short-form-edit | Драматургия короткого ролика: хук в первые секунды, план графики | Student Kit |
edit-video, video-storytelling | Монтаж длинных видео и визуальный мир ролика | Student Kit |
Графика
| Скилл | Что делает | Откуда |
|---|---|---|
motion-broll | Моушн-графика, привязанная к словам спикера | Barty-Bart/motion-graphics |
talking-head-recut | Карточки, плашки и титры поверх говорящей головы | heygen-com/hyperframes |
motion-principles | Правила тайминга, плавности и хореографии анимации | LottieFiles/motion-design-skill |
hyperframes-video-beats, style-library | Готовые графические карточки и стили | Student Kit |
Субтитры и экспорт
| Скилл | Что делает | Откуда |
|---|---|---|
embedded-captions | Субтитры в кадре | heygen-com/hyperframes |
reel-export | Кодирование под Instagram* Reels и безопасные зоны | charlie947/motion-graphics-skills |
object-separation | Вырезает человека из фона нейросетью SAM 2. Тяжёлый, ставлю только по запросу | Barty-Bart/motion-graphics |
Движок: hyperframes, hyperframes-cli, gsap, hyperframes-registry
из Student Kit. Они нужны, чтобы Claude правильно писал HTML-анимацию и рендерил её.
Свой слой: vladilen-reels. Оркестратор, который запускается командой
/reel и ведёт рилс по всем этапам. О нём в разделе 8.
Ещё четыре скилла из Student Kit для рилсов не нужны: make-a-video,
motion-showreel, short-form-video, website-to-hyperframes.
Что я сознательно не ставил: Remotion и скиллы под него. Это второй движок видео, а два движка в одном проекте дают двойную сложность.
Ссылки
- HyperFrames Student Kit (MIT): https://github.com/nateherkai/hyperframes-student-kit
- motion-broll, object-separation (MIT): https://github.com/Barty-Bart/motion-graphics
- embedded-captions, talking-head-recut (Apache-2.0): https://github.com/heygen-com/hyperframes
- motion-principles (MIT): https://github.com/LottieFiles/motion-design-skill
- reel-export (MIT): https://github.com/charlie947/motion-graphics-skills
5. Вырезаем паузы и дубли
Что получится: видео без пустых пауз и неудачных дублей. Исходник остаётся нетронутым, рядом лежит отчёт, что и почему вырезано.
Как это сделано у меня
- Транскрипт. Whisper отдаёт текст с таймкодом каждого слова. Результат кэшируется по отпечатку файла, поэтому за одно и то же видео я не плачу дважды.
- Паузы. Скилл
cut-silencesнаходит промежутки между словами длиннее 0,55 с и сокращает их до короткого вдоха: от 0,14 до 0,24 с в зависимости от места во фразе. Пауза короче 0,55 с считается естественным ритмом речи. - Мне этого мало. Для динамики я оставляю между фразами не больше 0,12 с. Это моя настройка, к ней я пришёл после правок на втором реальном рилсе.
- Дубли. Скилл
cut-mistakesищет кандидатов: повторы, брошенные фразы, слова-маркеры вроде «стоп, ещё раз». Потом Claude обязательно читает весь транскрипт сам. Пустой отчёт детектора не значит, что дублей нет. - Список склеек. Все решения сводятся в один список в секундах исходника.
Рядом Claude пишет понятный отчёт
CUTS.md: где вырез, сколько секунд и почему. - Рез. ffmpeg вырезает всё одним проходом из исходника. Звук и картинка режутся одними и теми же отрезками, поэтому синхрон не уезжает.
Открыть крупнее ↗Самая большая склейка в этом рилсе длилась 27,6 с. Там были мои первые попытки двух фраз и посторонние звуки. Claude оставил последний чистый дубль. Остальные 12 склеек — паузы и обрезка начала и конца.
Повторить самому
Создайте папку, положите туда видео и файл .env с ключом OpenAI. Откройте
в этой папке Claude Code и дайте промпт:
В папке лежит video.mov, ключ OpenAI в .env.
1. Сделай транскрипт через OpenAI whisper-1 с таймкодом каждого слова
(response_format verbose_json, timestamp_granularities word, язык ru).
Сохрани в transcript.json.
2. Найди паузы между словами длиннее 0,5 с. Каждую сократи до 0,15 с.
3. Прочитай весь транскрипт и найди неудачные дубли: фразы, которые я начал
и повторил заново, и слова вроде «стоп», «ещё раз». Оставь последний дубль.
4. Покажи таблицу склеек: начало, конец, длительность, причина, вырезанные слова.
Ничего не режь до моего «да».
5. После «да» вырежи всё одним проходом ffmpeg из исходника в clean.mp4.
Исходник не меняй.
Подводные камни
- Намеренный повтор — не ошибка. Если вы повторили слово для акцента, его нельзя резать. Поэтому каждую склейку дублей смотрите в контексте фразы, а не верьте детектору вслепую.
- Детектор дублей из Student Kit на русском не работает из коробки. Он разбирал слова только латиницей, и каждое русское слово для него было пустым. Я это исправил в своём проекте. Без исправления просите Claude читать транскрипт целиком, как в промпте выше.
- Ещё две ловушки я разбираю в видеоуроке: где Whisper прячет паузы так, что их не видно в транскрипте, и как не отрезать окончание слова на склейке.
6. Субтитры на русском
Что получится: субтитры короткими смысловыми кусками, которые не закрывают лицо и не уходят под кнопки Instagram*.
Правила, к которым я пришёл
- Не больше 22 символов в строке и двух строк. Русские слова длиннее английских, поэтому строки надо считать по символам.
- Без переносов внутри слова.
- Каждый субтитр держится на экране не меньше 0,5 с.
- Слово, которое звучит сейчас, подсвечивается фирменным цветом.
- Только шрифты с кириллицей. Я использую Inter. Ловушка: в кэше HyperFrames лежит урезанная копия Inter только с латиницей. Браузер молча подставит другой шрифт, и вы это заметите только в готовом видео. Поэтому перед рендером скрипт проверяет, что в шрифте есть каждая буква из субтитров.
- Весь текст внутри безопасной зоны Reels: по высоте от 360 до 1420 px, по ширине не правее 960 px на кадре 1080×1920. Справа кнопки лайков и комментариев, снизу подпись и имя аккаунта.
Открыть крупнее ↗Правка с первого реального рилса: субтитры стояли слишком высоко и закрывали лицо. Я сказал это Claude, он опустил их: нижний край блока теперь у самой границы безопасной зоны. Правило записано в настройки бренда и работает во всех следующих рилсах.
Как это сделано у меня
Субтитры строятся из того же транскрипта, который был нужен для вырезки пауз. Повторно ничего не распознаётся. На выходе три файла:
- файл
.srt, его можно открыть в любом редакторе; - прозрачное видео с субтитрами, чтобы положить его поверх ролика в монтажке;
- версия, вшитая в готовый рилс.
Так выглядит начало .srt моего рилса:
1
00:00:04,790 --> 00:00:06,174
Ни CapCut, ни
Премьера.
2
00:00:06,294 --> 00:00:08,485
Я отдаю ему сырое
видео одной командой.
Повторить самому
Продолжите в той же папке после раздела 5:
Возьми transcript.json и список склеек, по которому ты резал clean.mp4.
Пересчитай время каждого слова под clean.mp4 (заново не распознавай).
По этому транскрипту сделай субтитры:
- не больше 22 символов в строке и не больше 2 строк, без переносов внутри слова;
- деление по смыслу фразы, каждый субтитр на экране не меньше 0,5 с;
- сохрани captions.srt.
Потом вшей субтитры в видео через ffmpeg в captions.mp4: шрифт Inter
(проверь, что в нём есть кириллица), белый текст, полупрозрачная тёмная подложка,
низ блока на высоте 1420 px от верха кадра 1080×1920, текст не правее 960 px.
Сделай 3 кадра из готового видео и проверь, что субтитры не закрывают лицо.
Последняя строка промпта важна. Так Claude сам смотрит на результат и исправляет его до того, как вы откроете файл.
7. Картинка и звук: что ещё умеет конвейер
Здесь я только показываю, что получается. Как это настроено, разбираю в видеоуроке клуба.
Цвет
Рилс снят в четырёх местах при разном свете: у окна днём, в номере под тёплыми лампами, у зеркала с оранжевой подсветкой и у штор. На склейках цвет прыгал, и ролик выглядел как нарезка из разных видео.
Claude приводит все локации к одному виду, добавляет лёгкий фирменный фиолетовый в тени, мягкий контраст и тонкое зерно. Кожа остаётся естественной.
Открыть крупнее ↗В цифрах по этому рилсу:
- разброс среднего цвета между локациями: было 15,0, стало 6,7;
- разброс тёплости кадра: было от 18 до 40, стало от 13 до 31.
Что можно менять словами: насколько сильно подгонять локации друг к другу, сколько фиолетового в тенях, контраст, зерно. Новый вариант цвета собирается рядом с утверждённым, и я выбираю, какой оставить.
Камера следит за лицом
Claude находит лицо в каждом кадре: 1137 кадров этого рилса, около 10 секунд работы. Дальше наезды и плавный дрейф камеры идут к лицу, а не в центр кадра. На смене локации лицо в старом и новом кадре встречается в одной точке, поэтому глаз зрителя не прыгает по экрану.
Звук
Открыть крупнее ↗Голос. Выровнен по тембру и громкости, резкие шипящие смягчены. Шумодав включается сам, только если в паузах слышен фон. В этом рилсе он не понадобился.
Стыки. На каждой из 11 склеек убран щелчок. Скачок сигнала на стыке был до 3,9 раза выше обычного уровня, стал не больше 0,2 от него.
Звуковые акценты. 21 тихий звук: переходы между локациями, нажатия кнопок в графике, появления карточек, удар на слове «Claude» в хуке. Акценты примерно на 9 дБ тише голоса и никогда не попадают внутрь слова.
Музыка. Конвейер умеет подкладывать музыку:
- под речью музыка уходит вниз, между фразами становится громче;
- удар в хуке и раскрытие фона попадают на долю такта;
- перед ключевой фразой музыка обрывается, фраза звучит в тишине, и трек возвращается с сильной доли;
- несколько вариантов музыки сравниваются на одном и том же монтаже, картинку заново рендерить не нужно.
Эту механику я проверил на тестовом треке. В опубликованный рилс идёт только музыка с лицензией на коммерческое использование.
8. Что дальше: полная система в клубе
Разделы 5 и 6 дают первый результат: видео без пауз и с субтитрами. Чтобы получить рилс на картинке в начале страницы одной командой, нужна система целиком. Её я разбираю в видеоуроке клуба:
- Установка и основа проекта. Как развернуть Student Kit, какие версии закрепить, что убрать из git, первый тестовый рендер.
- Русский язык во всём конвейере. Нормализация транскрипта, словарь русских слов-паразитов и маркеров дублей, проверка шрифтов, сверка пауз по громкости звука.
- Свой стиль. Файл бренда с цветами, шрифтами и правилами словами, эталонные рилсы и журнал правок. Мои правки копятся в журнале, и Claude учитывает их в каждом следующем рилсе.
- Цвет и звук. Как настроены цветокоррекция, слежение за лицом, обработка голоса, звуковые акценты и музыка под бит. Какие параметры менять словами и как сравнивать варианты.
- Графика и эффекты. Моушн-графика под слова. Смена фона: спикер вырезается из кадра офлайн за секунды, текст встаёт за головой. Рывки со смазом на смене локации, тихие звуковые акценты, плавные переходы карточек.
- Одна команда
/reel. Оркестратор, который ведёт рилс по девяти этапам и останавливается только в двух местах: я выбираю хук и план графики, потом смотрю превью. Самопроверка по кадрам, экспорт под Reels и автоматическая проверка файла. - Разбор трёх реальных прогонов. Что Claude сделал сам, какие правки дал я и какие из них стали правилами.
- Готовые файлы: скилл оркестратора, шаблоны бренда, брифа и сценария.
Что дальше
Полная система монтажа — в Клубе Незаменимых
В видеоуроке клуба разбираю весь процесс: настройку проекта, свой стиль, графику, цвет, звук и сборку рилса одной командой.
Уже в Клубе? Войди в свой аккаунт, чтобы найти видеоурок. Войти в аккаунт →
* Instagram — продукт компании Meta Platforms Inc., признанной экстремистской организацией, деятельность которой запрещена в РФ.