Cinematic beat-synced reel
Companion to video-editor-pro (read references/studio-folder-structure.md, lessons-and-feedback.md). Reference: projects/2026-10-16_car-delivery-cinematic-reel (22.7 s, 97 BPM, 19 shots, v1→v3).
Estrutura de pastas
projects/YYYY-MM-DD_<slug>/
raw/ (clips IMG_*.MOV, photos *.JPG, song .mp3)
edit/ plan.py build_shots.py compose.py ff.sh
work/ base.mp4 → fx.mp4 → mix exports/ vN_<what>.mp4 notes.md
ff.sh: exec /opt/homebrew/opt/ffmpeg-full/bin/ffmpeg -nostdin "$@" (ffmpeg em segundo plano trava sem -nostdin).
Pipeline
- Inspecionar todos os clipes (fps, orientação, duração) + folha de contato; escolher os takes hero, detalhe, ritual e abertura. Clipes de 60 fps permitem câmera lenta verdadeira de 0.5×.
- Grade de batidas:
video-editor-pro/scripts/beat_detect.py song→ BPM, duração da batida, primeira batida. Emplan.py:T(n)=FIRST+BEAT*n, quadros cortados arredondados pararound(T*FPS). - Lista SHOTS
(start_beat, clip, src_in, speed, ("in"|"out", amount), (fx,fy)). Estruturar por compasso: abertura herói em câmera lenta → detalhes de beleza (lentos) → o ritual a 1 batida/take → construção → DROP (takes abertos, flash + boom no beat do drop) → takes laterais lentos → momento emocional → fotos no final (SFX de obturador, flashes brancos) → foto herói com título → fade out. Takes longos em compassos lentos, cortes de 1 batida para energia. - build_shots.py →
work/base.mp4(push/pull suavizado, ponto de foco por take). - Passo de FX (ffmpeg separado): grade cinematográfica (realces suavizados, sombras azuladas/realces quentes), bloom, vinheta, grão →
work/fx.mp4. Manter separado do passo de composição. - compose.py: títulos, flashes branco/âmbar (
FLASHES = (beat, colour, dur, alpha)), SFX (boom_hit/sub_drop no drop, riser antes dele, obturador em fotos), master da música → composição. - Entregar: normalizar
-14 LUFS,--tp -1.5, AAC 320k,qc.py --platform reels. Folha de contato do resultado.
Regras de título (aprendidas com feedback)
Títulos ousados estilo Optima com gradiente/sombra forte – títulos fracos foram rejeitados (v1→v2). Manter texto dentro das margens de segurança (v3). Colocar texto do cartão final sobre áreas lisas (ex.: telhado) para que rostos/placas permaneçam limpos. Cartão final típico: WELCOME HOME / FAMILY NAME / DELIVERY DAY.
Miniaturas (sempre, solicitação do usuário 2026-10-16)
A cada exportação (e junto de cada pré-visualização) fazer exports/vN_cover_reels_1080x1920.jpg (todo texto dentro do centro 1080x1440 = corte de grade 3:4 do Instagram) e exports/vN_thumb_youtube_1280x720.jpg a partir da foto/quadro mais nítida(o) em resolução máxima, com a mesma grade do vídeo, título Montserrat Black em negrito + destaque amarelo da marca + logotipo real. Usar a skill thumbnail-designer.