# Удержание: числа, против которых строится монтаж

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

## Что измерено индустрией

| Число | Что означает | Насколько твёрдое |
|---|---|---|
| **41% против 58%** | Статичная говорящая голова удерживает ~41% зрителей. Тот же материал той же длины со сменой картинки каждые ~4 секунды — ~58%. | Самое важное число в этом файле. Разрыв в 17 процентных пунктов больше, чем даёт любое другое решение в пайплайне. |
| **каждые 3–5 секунд** | Рабочая частота смены картинки. Меньше трёх интерраптов на ролик — «плоско», больше пяти на тот же отрезок — «хаос». | Сходится у нескольких независимых источников. |
| **5 секунд** | Потолок статики. Дольше — падение начинается вне зависимости от содержания. | Верхняя граница, а не цель. |
| **первые 3 секунды** | Окно решения «смотреть или нет». Сильное начало доводит до конца этого окна 80–90% пришедших. | Универсально для всех вертикальных платформ. |
| **21–34 секунды** | Длина с максимальным процентом досмотра (~62%). | Только для коротких форматов. |
| **минимум 2 секунды** | Сколько титр должен висеть, чтобы его успели прочитать. | Прямо ограничивает `max_words` в пресете субтитров. |
| **+12%** | Прирост удержания от точных субтитров. 60–70% смотрят без звука. | Причина, по которой субтитры в этом скилле не опция. |
| **+23%** | Прирост от начала-вопроса про боль зрителя против общего вступления. | Влияет на выбор фразы в `plan_cold_open.py`. |
| **15 и 30 секунда** | Точки, где ставят дополнительный крючок в середине. | Слабее остальных; проверяй на своей аудитории. |

Источники — отраслевая аналитика, не рецензируемые исследования: выборки
измеряются сотнями роликов одного жанра, а не тысячами разных. Разброс между
нишами реальный: B2B держит внимание при смене каждые 8–10 секунд, развлечение
для молодой аудитории требует 2–3. **Числа задают отправную точку, а не закон.**

## Как это превращается в монтаж

```bash
python scripts/plan_retention.py base.mp4 timeline.json \
  --out retention_plan.json --max-static 4 --opening-static 2 --allow-broll

python scripts/render_punch_ins.py retention_plan.json base.mp4 punched.mp4
```

`plan_retention.py` считает не «сколько эффектов поставить», а **бюджет
неподвижности**: любое окно длиннее `--max-static` без смены картинки — это долг,
который надо закрыть. Отчёт показывает распределение до и после:

```
BEFORE  changes 21  mean_gap 5.04  max_gap 10.15  share_over_budget 0.814
AFTER   changes 32  mean_gap 3.31  max_gap  4.80  share_over_budget 0.373
```

Средний интервал 3.31 с — внутри измеренного оптимума; максимальный 4.8 с — под
потолком в 5 секунд.

## Чем закрывать окно

Тип интерраппта выбирается по транскрипту в этот момент, а не по кругу:

- **число произносится** → выноска графики. Цифру нужно видеть, а не только слышать.
- **названо то, что можно показать** → б-ролл. Перебивка на реальном материале
  держит лучше любого зума, потому что это новая информация, а не новый ракурс.
- **местоимение или абстракция** → рефрейм. Показывать нечего, поэтому меняется
  крупность. Самый частый и самый дешёвый вариант.

## Почему рефрейм — это склейка, а не зум

Панч-ин у одной статичной камеры — единственный способ получить склейку. Он
обязан быть **мгновенным**: один кадр общий, следующий крупный, без разгона.
Полусекундный наезд читается как движение камеры, то есть как приём, который
зритель замечает, — а замечать он должен содержание.

Две детали решают, выглядит это дорого или дёшево:

1. **Кроп до масштабирования.** Окно берётся из исходника в его родном
   разрешении. Если сначала привести кадр к канвасу, а потом зумить результат,
   крупные планы окажутся заметно мягче общих — зритель прочитает это как
   артефакт сжатия, а не как монтаж. `render_punch_ins.py` отказывается работать
   при зуме больше 1.3 и сообщает, сколько исходных пикселей осталось в самом
   тесном кадре.
2. **Кадрировать по спикеру, а не по центру.** Человек, снятый на телефон, сидит
   выше центра кадра: наезд в геометрический центр стабильно срезает макушку.
   Центр объекта измеряется по временной дисперсии — говорящий это единственное,
   что меняется от кадра к кадру, стена и кресло постоянны. Модель для этого не
   нужна, и у метода нет режима отказа на непривычном ракурсе лица.

Чередование масштаба и снос центра на несколько процентов между событиями — то,
что отличает монтаж от автоматики: иначе все панч-ины выглядят одним движением.

## Чего эти числа не говорят

Удержание — следствие содержания. Ритм смены картинки убирает причину уйти, но
не создаёт причину остаться. Ролик без мысли, нарезанный каждые три секунды,
получает ровную кривую падения вместо обрыва — и всё.
