Skip to content
Back to skills

Reels Console

ASecurity

Edit a vertical reel (Reels, Shorts, TikTok) out of one static take — entirely in the console, no CapCut. Cuts pauses by speech, slices a single fixed shot into different crop levels anchored to the face, adds push-ins and a motion-blurred punch zoom, drops in B-roll, burns three-level captions from speech recognition, ducks music under the voice, masters loudness to -14 LUFS, embeds a cover frame, and checks its own cuts and captions before delivery. Use when asked to «смонтируй ролик», «соб...

  • 5 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 12, 2026
ai-agentspythonbash

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned October 12, 2026

npx -y skills add GuruDevvv/my-claude-skills --skill reels-console --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reels Console?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reels Console
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gurudevvv-reels-console/badge)](https://www.skillsdirectory.com/skills/gurudevvv-reels-console)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reels-console
description: >
  Edit a vertical reel (Reels, Shorts, TikTok) out of one static take — entirely
  in the console, no CapCut. Cuts pauses by speech, slices a single fixed shot
  into different crop levels anchored to the face, adds push-ins and a
  motion-blurred punch zoom, drops in B-roll, burns three-level captions from
  speech recognition, ducks music under the voice, masters loudness to -14 LUFS,
  embeds a cover frame, and checks its own cuts and captions before delivery.
  Use when asked to «смонтируй ролик», «собери рилс», «сделай видео динамичным»,
  «нарежь дубль», «поставь субтитры на видео», «убери паузы из видео»,
  edit my talking head video, make this reel dynamic, cut the silences.
---

# Монтаж статичного дубля в консоли

Скилл закрывает разрыв между редакторским гайдом и инструментами: как сделать ролик
динамичным, написано много где, а руки к этому обычно прикладывают в CapCut.
Здесь всё то же самое делает ffmpeg, а решения принимает модель.

**Что на входе:** один дубль, снятый с одной точки, человек говорит в камеру.
**Что на выходе:** вертикальный ролик 1080×1920 с вырезанными паузами, сменой
крупности, титрами, громкостью по стандарту соцсетей (−14 LUFS) и обложкой первым кадром.

## Четыре приёма, на которых всё держится

Зритель скучает не потому, что человек стоит на месте, а потому, что картинка
долго не меняется. Цель монтажа — менять её каждые 1,5–3 секунды. Для этого хватает:

1. **Смена крупности** — из одного кадра вырезаются общий, средний и крупный планы.
2. **Перебивки (B-roll)** — отдельно снятые детали поверх речи.
3. **Титры с акцентами** — основная масса мелко, 2–4 главных слова крупно, одно цветом.
4. **Звуковые акценты** — музыка тише голоса, короткие звуки на события.

## Порядок работы

### Шаг 1. Посмотреть план до рендера

```bash
python scripts/reel.py дубль.mp4 --dry-run
```

Скрипт напечатает, сколько пауз нашёл, где лицо, **до какой крупности можно
приближаться** и как он собирается нарезать дубль. Это самое важное место:
если предельная крупность около 1,0, дубль снят слишком близко, приём смены
крупности не сработает вообще, и лучше сказать об этом человеку сразу, а не
показывать ему потом ролик, в котором картинка не меняется.

В шаге «речь» скрипт печатает, что он сам исправил в расшифровке и какие места надо
**послушать**: звук без слов (вздох, оговорка, потерянная фраза), тихий звук в вырезанной
паузе, склейка вплотную к слову. Лишний кусок убирается флагом `--drop 37.8-39.0`
(секунды исходника). Скрипт такие места только показывает: вздох может оказаться смехом,
который в ролике нужен.

### Шаг 2. Выбрать акцентные слова

Их выбирает модель или человек, не скрипт. Прочитайте расшифровку
(`<дубль>-work/words.json` появляется после первого прогона) и возьмите:

- **2–4 акцентных слова** — те, ради которых сказана фраза;
- **одно слово-призыв** — то, что зритель должен написать в комментариях или запомнить.

Не выделяйте служебные слова и не ставьте больше одного цветного слова на ролик:
если выделено всё, не выделено ничего.

### Шаг 3. Собрать

```bash
python scripts/reel.py дубль.mp4 -o ролик.mp4 \
  --accent впервые главное результат --cta подпишись \
  --broll руки.mp4@7.5:1.8 --broll лицо.mp4@12.5:1.2 \
  --music бит.mp3 --whoosh вжух.wav --pop поп.wav
```

Перебивка пишется как `файл@секунда:длительность` по таймлайну **готового** ролика
(после вырезания пауз). Музыка, звуки и перебивки необязательны.

### Шаг 3а. Оформление — по желанию, не на каждый ролик

| Флаг | Что даёт | Когда брать |
|---|---|---|
| `--frame` | Ролик в скруглённом окне 4:5 на чёрном фоне, титры внутри окна | Спокойный «цитатный» ролик; горизонтальный исходник (Zoom, вебинар) — окно оставляет больше кадра, чем вырез 9:16. Минус: лицо мельче |
| `--lut look.cube --lut-mix 0.5` | Единый цвет из `.cube`-файла, смешанный с исходником | Серия роликов с разных телефонов. Выше 0,6 кожа уходит в оранжевый или серый — смотреть лицо на раскадровке |
| `--flash` | Короткий тёплый засвет (0,33 с) на двух стыках: в середине и перед финалом. Можно дать секунды: `--flash 12.5` | Прячет заметную склейку. Не больше двух на ролик, постоянные засветы — шаблон |
| `--broll-speed 0.85` | Перебивки чуть замедлены, смотрятся дороже | Когда перебивка — сток или быстрая съёмка |
| `--subs plate` | Титры плашкой: фраза до 26 знаков на цветной подложке, слова добавляются по мере речи. Высоту плашка выбирает сама, под подбородком | Спокойный ролик, где важно читать без звука. Крупные акцентные слова в этом режиме не рисуются |
| `--speed 1.1` | Речь чуть бодрее, голос не меняется | Монолог 1,15–1,25, спокойная подача 1,1–1,15. Выше 1,3 звучит суетливо. Если автор уже ускорил запись в телефоне, не ускорять |
| `--cover-at 0.8` | Обложка с заданной секунды готового ролика | Когда на листе кандидатов `<работа>/cover-sheet.png` лучший кадр не тот, что выбрал скрипт |
| `--sfx волны.wav@7.2:0.4` | Любой звук в нужную секунду | Фон под перебивку (улица, море), стук клавиш под печать |

Автоматические звуки (вжух на наездах и засветах, поп на акцентах) скрипт прореживает
сам: не чаще одного в 2 секунды. Звуки из `--sfx` ставятся всегда — это ручной выбор.

Звуки и музыка для публикации нужны с правами. Чужие фильмы, мемы и треки в ролике
бренда — риск блокировки.

### Шаг 4. Посмотреть глазами

Рядом с роликом появляется раскадровка `<ролик>-sheet.png` — двенадцать кадров
в одной картинке. Открывайте её, а не сам файл: по ней за один взгляд видно,
меняется ли картинка, не срезана ли макушка, не закрывают ли титры лицо.
Отдельный инструмент для просмотра видео для этого не нужен.

### Шаг 5. Проверить по списку

Три пункта скрипт проверяет сам и при провале выходит с кодом 2 и словами
«НЕ ПРОШЛО ПРОВЕРКУ»: громкость в пределах −14 ±1 LUFS, пик не выше −1 дБ,
титры не заходят на лицо. Такой ролик человеку не показывать, сначала чинить.
Остальное глазами:

- [ ] Картинка меняется каждые 1,5–3 секунды.
- [ ] Есть минимум три крупности; наезды — на главное, отъезд — перед финалом.
- [ ] Перебивки стоят на словах, которые иллюстрируют.
- [ ] Титры не закрывают лицо и не уезжают под интерфейс соцсети.
- [ ] Выделено 2–4 слова, цветом — одно.
- [ ] Музыка тише голоса, звуки не чаще раза в 2–3 секунды.
- [ ] Места из списка «послушать» прослушаны, лишнее убрано через `--drop`.
- [ ] Обложка: глаза открыты, рот спокойный (лист кандидатов `cover-sheet.png`).
- [ ] Ролик понятен без звука.
- [ ] Если есть LUT — кожа естественная; если рамка — титры внутри окна.

## Чего скрипт не делает сознательно

- **Слово за спиной человека** (как на обложке журнала). Сильный приём для хука, но нужна
  покадровая сегментация человека (rembg, Robust Video Matting) — на ноутбуке это часы,
  делать на сервере с видеокартой и снимать на ровном фоне.
- **Мокап телефона на призыве** и сложная анимация текста — это Remotion, не ffmpeg.
- **Готовые переходы между планами.** Чистая склейка со сменой крупности или засвет
  лучше: шаблонный переход сразу выдаёт «сделано в CapCut».

## Что скрипт решает сам, а что нет

**Сам:** где паузы и сколько от них оставить; переслушать места, где расшифровка
подозрительна (слово длиннее секунды), и вернуть потерянные слова; довести громкость
до стандарта; выбрать кадр обложки и вшить его; проверить титры по лицу; где лицо и куда его поставить в кадре;
до какой крупности можно приближаться; где границы планов (по паузам между словами);
какой план чем разбавить; тайминги титров (и пересчёт их после вырезания пауз).

**Не сам, и не должен:** выбросить вздох или оговорку (только показывает); какой дубль лучше; какое слово главное; в какой момент
нужен наезд; что показать перебивкой; что вообще стоит говорить. Это работа человека
или ваша как модели — договоритесь об этом до сборки, а не после.

## Требования

- ffmpeg и ffprobe в PATH (сборка с libx264, `subtitles`, `zoompan`, `sidechaincompress`).
- `pip install openai-whisper opencv-python insightface onnxruntime` — whisper нужен
  для титров, остальное для привязки кропа к лицу. Без них скрипт работает,
  но титров не будет, а кроп пойдёт от центра кадра.
- Шрифт с кириллицей для титров (по умолчанию Arial и Arial Black).

## Съёмка, без которой монтаж не получится

1. **Запас вокруг человека.** Снимать надо так, чтобы было видно по пояс, с воздухом
   сверху и по бокам. Если лицо занимает половину кадра, приближаться некуда
   и главный приём пропадает. Встать от камеры на 1,5–2 метра.
2. **Вертикально и в 4K.** Из вертикального 4K (2160 точек в ширину) можно приблизиться
   вдвое без потери качества. Если снять горизонтально и вырезать вертикаль,
   в ней останется 1215 точек и запаса почти не будет — совет «снимай горизонтально,
   потом вырежешь» работает только для горизонтального ролика.
3. **Текст по фразам, дублями.** Говорить фразу 2–3 раза подряд; лишнее уберётся,
   стыки спрячутся сменой крупности.
4. **После основного плана — 2–3 детали:** руки, эмоция, предмет. Каждую с новой точки.

## Подробности

`references/recipes.md` — все команды ffmpeg по отдельности, с замерами и граблями:
почему `crop` не умеет менять размер во времени, как сделать настоящий смаз движения
на ударном наезде, почему `amix` без `normalize=0` съедает голос, что ломается
в путях у фильтра `subtitles`.

Files in this skill

  • README.md3.7 KB
  • SKILL.md14.9 KB
  • references/recipes.md24.9 KB
  • scripts/reel.py51.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.