Skip to content
Back to skills

Dailies Prep

ASecurity

Подготовка материала съёмочного дня к монтажу в DaVinci Resolve через мост - синхронизация звука рекордера с камерой, возврат каждому клипу его звука, ступенчатая проверка кадров. Запускай, когда просят синхронизировать звук, собрать дубли по хлопушке и таймкоду, вернуть звук в таймлайн, проверить картинку монтажа, или говорят про takes.json, MXF-рекордер, дейлиз.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentspythonrustbash

Security analysis

A100/100

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

Scanned November 11, 2026

npx -y skills add koptsev63/premiere-claude-bridge --skill dailies-prep --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dailies Prep?

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

Security grade badge for Dailies Prep
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/koptsev63-dailies-prep/badge)](https://www.skillsdirectory.com/skills/koptsev63-dailies-prep)

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: dailies-prep
description: Подготовка материала съёмочного дня к монтажу в DaVinci Resolve через мост - синхронизация звука рекордера с камерой, возврат каждому клипу его звука, ступенчатая проверка кадров. Запускай, когда просят синхронизировать звук, собрать дубли по хлопушке и таймкоду, вернуть звук в таймлайн, проверить картинку монтажа, или говорят про takes.json, MXF-рекордер, дейлиз.
---

# Подготовка дня: синхронизация, звук, проверка кадров

Три инструмента одной цепочки. Результат синхронизации (`takes.json`) читают остальные.

Нужно: Python 3.13 с `numpy`, `av` (PyAV), `Pillow`; для работы в Resolve - Resolve Studio с внешними скриптами в режиме Local и раннер `core.adapters.resolve_run`.

## 1. Синхронизация звука `core/dailies_sync.py`

```bash
python -m core.dailies_sync scan /путь/к/звуку /путь/к/камерам --out meta.json
python -m core.dailies_sync sync meta.json --out takes.json [--scenes 1-18,1-19]
```

- Рекордер: MXF OP-Atom, по файлу на канал; сцена, дубль и имена каналов (`TRK1`...) берутся из комментариев заголовка. Камера: клип плюс `<имя>_A01.mxf` рядом (или звук внутри клипа).
- Дубли собираются по таймкоду, камеры подбираются по пересечению (не меньше 2 с). Затем смещение уточняется корреляцией черновой дорожки камеры с бумом (PHAT-взвешенная, окно ±2 с).
- Смещение в кадрах: `offset_frames` больше нуля означает, что картинка камеры опаздывает относительно своего таймкода. Кадр камеры `s` показывает момент `s + f0 - offset_frames` на таймкоде звука.
- `sharp` - резкость пика. Ниже 8: `trusted: false`. Слабая связь (ниже 10) с прыжком больше 2 кадров заменяется медианой того же ролика камеры и получает `fixed_by_roll: true`.
- Камеры, не попавшие ни в один дубль, - съёмка без рекордера: `unmatched_cameras()`.

Как читать результат: сначала сколько связей `trusted`, затем все `fixed_by_roll` и `trusted: false` - их смотреть глазами и ухом, а не верить. Остаток после округления до кадра (миллисекунды) считает `residual_ms()`.

## 2. Возврат звука в таймлайн `core/adapters/resolve_restore_sound.py`

```bash
RESTORE_SRC="Монтаж" RESTORE_TAKES=takes.json RESTORE_CAMERA=keep \
  python -m core.adapters.resolve_run exec core/adapters/resolve_restore_sound.py
```

- Копирует таймлайн (исходный не трогает), убирает звук копии и под каждый клип кладёт каналы рекордера его дубля со сдвигом: по моно-дорожке на канал (Boom1, Boom2 выше остальных), клип и звуки связаны.
- Звук камеры: `RESTORE_CAMERA=keep` (по умолчанию, дорожки включены), `mute` (есть, выключены), `omit` (не кладётся). Камера и рекордер расходятся на миллисекунды, поэтому вместе они могут звучать как флэнджер: решай под проект.
- Клипы без дубля остаются только со звуком камеры. Если рекордер кончился раньше клипа, в отчёте строка, звук не дорисовывается.
- `RESTORE_PROJECT=ИМЯ` - защита от запуска не в том проекте.
- Файлы рекордера должны лежать в медиапуле.

## 3. Ступенчатая проверка кадров `core/framecheck.py`

Идти от дешёвого к дорогому. Подробные кадры вокруг склеек - только для бесшовного монтажа: у дробного (монтажная нарезка, прыжки, перебивки) они ничего не скажут.

| ступень | что | сколько |
|---|---|---|
| 0 | числа без просмотра: где картинка меняется (`motion_profile`) | шаг 0,5 с |
| 1 | обзор каждой камеры каждого дубля (`overview_sheets`) | 8 кадров на дубль |
| 2 | края плана (`edge_sheet`) | вход, вход+1 с, выход-0,5 с |
| 3 | вокруг склейки (`cut_sheets`, только бесшовный) | секунда до и секунда после, по 4 кадра, шаг треть секунды |
| 4 | внутри плана - только где ступень 0 нашла движение | кадр раз в полсекунды |
| 5 | журнал непрерывности: в каждом плане кто где в начале и в конце; сравнить склейки и историю | по планам |
| 6 | один кадр в полном размере для спорного места | точечно |

```bash
python -m core.framecheck overview takes.json out/
python -m core.framecheck cuts takes.json edl.json out/ --seamless   # без --seamless листов нет
```

- Сначала спроси или прочитай из задания, бесшовный ли монтаж. Переключатель `--seamless` по умолчанию выключен.
- Даже в бесшовном монтаже плотные листы строятся только на склейках, которые должны совпасть: две камеры одного дубля или продолжающееся действие. Вставки из другого дубля пропускаются, там разрыв задуман.
- Строки EDL: `[звук_дубль, от_с, до_с, картинка_дубль, камера, картинка_от_с или null, заметка]`.
- Докладывая о проверке, называй, какие ступени запускались. Реальные промахи бывали не от редких кадров, а оттого, что дубль не смотрели вовсе или не сравнили положение людей между планами.

Files in this skill

  • ABOUT.md5.3 KB
  • SKILL.md7 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.

View all in ai-agents →

Comments

Loading comments…

Newsletter

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