RECULT · план · ждёт «да»

Конвейер рилсов из наших эссе

Карусель уже содержит всё для ролика: текст, темы кадров, фильмы-источники. Конвейер превращает её в вертикальное видео 9:16 голосом Arcad, в стиле рилса Кинопоиска про «Обитель зла». Первый выпуск — «Почему разрушенный мир успокаивает больше, чем реальный».

Что делает эталон

Рилс Кинопоиска: 2:24, 1080×1920, 60 кадров/с. Я разобрал его покадрово.

Кадры эталонного рилса каждые 3 секунды
1

Кадр держится долго

31 склейка на 144 секунды, в среднем 4,5 с на кадр. Одна мысль — один кадр. Внутри кадра движение самого фильма, а не наши зумы.

2

Фильм на весь экран

Широкий кадр обрезан в вертикаль по герою: лицо или фигура всегда в кадре, без чёрных полос. Если в кадре двое, берут другой план.

3

Тихие субтитры

Белый гротеск, 1–2 строки, чуть ниже центра. Показывается смысловой кусок фразы, а не слово за словом.

4

Подпись источника

В правом верхнем углу мелко: «Фильм», год / студия. Выглядит честно и дорого.

5

Карточки-вставки

Цитата на светлом фоне и сравнение «два фильма друг над другом». Появляются, когда нужно что-то доказать.

6

Тёмная ровная гамма

Все фрагменты приведены к одному настроению, хотя взяты из разных фильмов.

Что было криво в копии RE и как это закрыто

Я нашёл в коде причины того, что ты увидел.

Было
Фрагмент всегда брался с начала скачанного клипа и обрезался по длине фразы. Если клип был короче фразы, последний кадр замораживался. Шот начинался посреди движения и обрывался посреди жеста.
Станет
Каждое видео сначала режется на родные планы, то есть места, где склеил сам режиссёр фильма. Фрагмент живёт только внутри одного плана. Вход и выход ставятся в спокойной точке: в конце жеста, на повороте головы, на паузе. Заморозка кадра запрещена.
Было
Склейка ставилась по сетке фраз, иногда посреди слова. Кадры могли меняться чаще, чем успевает прочитаться мысль.
Станет
Склейка только в паузе голоса или на границе смыслового куска. Кадр держится минимум 2,5 с. Правило «одна мысль — один кадр»: длинная фраза может получить второй кадр, только если он продолжает первый.
Было
Кроп вслепую по центру: в вертикаль попадал кусок стены, половина лица или пустота между двумя героями.
Станет
Умный кроп. Детектор находит людей, лица и главный объект в каждом кадре плана, окно 9:16 плавно ведёт камеру за ними. Если объект не помещается в вертикаль, план отбраковывается и берётся другой. Каждый кроп проверяется на контактном листе.
Было
Звук исходников звучал вперемешку с голосом, картинка переключалась без смысловой связи с текстом.
Станет
Три дорожки со строгими правилами (схема ниже). Кадр подбирается под смысл фразы, а не под ключевое слово, и каждый выбор проходит проверку глазами до сборки.

Звук: как устроены дорожки

Голос ArcadЭмбиентЗвук фильма говорит говорит фон, тихоприглушён реплика / звук выключенвыключен «окно» 2–5 с: смотрим и слушаем фильм

Весь ролик идёт на эмбиенте, звук фильмов выключен. В заранее выбранных «окнах» голос молчит, эмбиент мягко уходит вниз, и 2–5 секунд звучит сам фильм: реплика героя, треск костра, вой ветра над руинами. Потом голос возвращается. На ролик 3–5 таких окон, они ставятся туда, где фрагмент усиливает мысль. Громкость по стандарту Instagram (−14 LUFS).

Эмбиент берём из бесплатных библиотек без авторских претензий (Pixabay Music, YouTube Audio Library) и вшиваем в ролик.

Как работает конвейер

Новый модуль pipelines/ig-reels/, рядом с модулем каруселей. На вход выпуск карусели (episode.json), на выходе готовый MP4 и страница просмотра.

Голос и тайминг

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

бесплатноWhisper локально

Режиссёрский лист

Каждая мысль сценария получает задачу для кадра: не «офис», а «человек, которого придавила рутина: неподвижен, свет монитора, пустота вокруг». Плюс где открыть окна для звука, где карточка-вставка, какое настроение цвета. Опора — фильмы, заложенные в карусель, и то, что есть в разборе эталона.

пишу сам

Сбор материала в качестве

Качаю трейлеры, клипы сцен и геймплей из списка (1080p и выше, 4K где есть). Каждое видео режется на родные планы, для каждого плана — контактный лист: 3 кадра, длина, есть ли движение, есть ли реплика.

yt-dlpPySceneDetectбесплатно

Подбор кадров

Агенты-монтажёры смотрят контактные листы глазами и под каждую задачу из режиссёрского листа выбирают 2–3 плана, лучший первым, с объяснением. Проверка: кадр говорит то же, что голос; соседние кадры не спорят по свету и настроению; нет логотипов, чужих субтитров и водяных знаков.

субагенты Claudeв рамках подписки
Гейт 1. Страница раскадровки: фраза → кадр (превью 3 с) → откуда → запасные варианты. Меняешь любой кадр до монтажа.

Точная нарезка и кроп

Вход и выход внутри плана по спокойным точкам движения. Умный кроп 9:16 с плавным ведением за объектом. Единая цветокоррекция выпуска: тёплая пыльная гамма карусели, лёгкое зерно.

OpenCV / детектор людейffmpeg

Графика

Субтитры кусками фраз в стиле эталона, шрифт из шаблона карусели. Подпись источника в углу. Карточки там, где они есть в карусели (например, «Возврат к базовому коду ДНК» — текстовый слайд). В финале логотип RECULT и призыв сохранить.

HyperFrames

Звук и сборка

Голос + эмбиент + окна со звуком фильма по схеме выше. Рендер 1080×1920, 30 кадров/с, под требования Instagram.

ffmpeg

Самопроверка до показа

Автоматические проверки: ни одна склейка не попала на склейку внутри фильма (нет мигания), ни одна не режет слово, объект в кадре после кропа, нет заморозок, громкость в норме. Потом я сам просматриваю покадровый лист всего ролика. Только после этого ссылка тебе.

Гейт 2. Черновой рилс на странице просмотра (ширина телефона) → твои правки → финал.

Выпуск

Финальный MP4 + обложка + подпись (берём из карусели и адаптируем под Reels) → в реестр выпусков RECULT HQ. Публикуешь ты сам: всё, что уходит под брендом, сначала показываю тебе.

Цена и сроки

Деньги0 ₽. Голос уже начитан, материал бесплатный, эмбиент из бесплатных библиотек, отбор кадров делают субагенты по подписке. Платных генераций в плане нет.
Гейт 1 (раскадровка)Сегодня, после твоего «да».
Гейт 2 (черновой рилс)В течение дня после «да» на раскадровку.
Длина ролика~1:35–1:45: голос 1:24 + окна со звуком фильма.
РискInstagram иногда глушит звук или режет охват за фрагменты фильмов. Короткие отрезки внутри авторского разбора обычно проходят, но гарантий нет. Окна со звуком фильма держим короткими.

Нужно от тебя

1. «Да» на этот план.

2. Название канала в голосе. Arcad произносит «Рекулт». Так и оставляем, или правильно «Рекалт»?

Всё остальное решаю сам по эталону.