Монтаж видео одним промптом
Сырой .mov → транскрипт → Remotion-композиция с пословной подсветкой
и оверлеями → отрендеренный mp4. Один промпт, ноль ручного тайм-кода. И самое интересное:
монтажные команды берутся из того, что человек сказал вслух в кадре.
Что было на входе
За 10 минут до эфира записан сырой .mov: человек говорит в камеру, рукой
показывает, где должен появиться оверлей, и голосом произносит «fade to black».
Инструкции для монтажа проговорены вслух внутри самого видео. Транскрипт становится не только источником субтитров, но и разметкой монтажа.
auto mode on (shift+tab to cycle).Промпт — разбери по частям
this is a repo for a peter yang podcast where I show him how I edit
videos, there's a sample video here in @peter-yang-recording.mov.
Transcribe it using whisper, then using remotion create a UI that
shows the transcript with each individual word being highlighted as
it goes, as well as different overlays as indicated by the transcript.
Then render all of that into a video.
/goal dont stop until the video is fully rendered.
Что получилось в репозитории
peter-yang/
├── peter-yang-recording.mov ← вход, сырая запись
├── transcript/
│ └── audio.json ← Whisper: пословные тайминги + probability
├── src/
│ ├── transcript-data.ts ← текст + позиции оверлеев (x / y)
│ └── Overlays.tsx ← сами оверлеи (width: 360 и т.д.)
├── remotion.config.ts
├── package.json
└── peter-yang-edited.mp4 ← выход
Whisper отдал не просто текст, а массив слов с start, end и
probability на каждое слово — из этого строится караоке-подсветка. Транскрипт
честно записал «Hey, sorry» вместо имени: Whisper не знает имён собственных. Про то, где ещё
он врёт, — отдельная тема.
Конвейер целиком
Итерация голосом, а не кодом
Самая ценная часть для практики. Правки формулируются человеческим языком, агент сам находит нужные числа и сам делает полный ре-рендер:
> тот прямоугольник должен быть аккуратнее и вписан в стену
там, куда я показываю пальцем
• That's a cleaner rectangle now, tucked into the wall space
right where you point. Let me do the full re-render.
Ran 1 shell command
• Done. The overlay is now a tighter, more rectangular box
(fixed 360px width, text wrapping to two lines) tucked cleanly
into the upper-left wall space — right along the line your
finger traces.
Updated video is at peter-yang-edited.mp4. If you want to
fine-tune, both the position (x/y in src/transcript-data.ts)
and the box width (width: 360 in src/Overlays.tsx) are easy
single-number tweaks.
Worked for 1m 42s
Агент не просто сделал — он вернул рычаги: назвал два конкретных числа в двух конкретных файлах, которые крутить дальше. Результат + где ручка настройки. Это то, чего стоит требовать от наших генераторов в их отчётах.
Признанный предел
Автор честно говорит, что позиционированием недоволен: агент плохо понимает, куда именно показывает рука. Названное направление — трекинг пальцев или лица и передача агенту этой метадаты, чтобы оверлеи ставились точно.
Отдельно он исследовал сегментацию видео (текст за спикером) — и отказался: надёжного решения не нашлось. Подробности того исследования (SAM 2, режимы отказа) — в теме про планирование.
- Голос как разметка монтажа — прямой апгрейд для talking-head роликов. В скрипт закладываем произносимые маркеры, агент читает их из транскрипта. Ноль ручного тайм-кода.
probabilityна слово у нас в конвейере субтитров есть, но не используется. Это готовый детектор плохого распознавания: слово с низкой вероятностью подсвечиваем на ревью, а не пропускаем молча в рендер.- Правка числом, а не пересборкой. В наших Remotion-манифестах позиции должны быть one-number tweak в одном файле, а не размазаны по TSX. Именно это делает итерацию голосом дешёвой.
- Отчёт генератора должен возвращать рычаги — «поменял то-то, крутить дальше вот эти два числа вот в этих файлах».