电影感节拍同步短片
与 video-editor-pro 配合使用(请阅读 references/studio-folder-structure.md 和 lessons-and-feedback.md)。参考项目:projects/2026-10-16_car-delivery-cinematic-reel(22.7 秒、97 BPM、19 个镜头、v1→v3)。
文件夹结构
projects/YYYY-MM-DD_<slug>/
raw/ (视频素材 IMG_*.MOV、照片 *.JPG、歌曲 .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 时需加上 -nostdin,否则会卡住)。
处理流程
- 分析所有素材(帧率、方向、时长)并生成联系表;挑选主镜头、细节镜头、仪式镜头和广角镜头。60 fps 的手机素材可实现 0.5 倍真实慢动作。
- 节拍网格:运行
video-editor-pro/scripts/beat_detect.py song→ 获取 BPM、节拍长度、首拍位置。在plan.py中:T(n)=FIRST+BEAT*n,裁切帧对齐到round(T*FPS)。 - 镜头列表
(起始节拍、素材、源入点、速度、("入"|"出"、程度)、(焦点x、焦点y))。按小节组织:主角慢动作开场 → 美景细节(慢速)→ 仪式镜头(每拍一个)→ 铺垫 → 高潮Drop(广角镜头、在Drop节拍处加闪光+撞击效果)→ 慢速侧面镜头 → 情绪时刻 → 结尾照片(快门声、白色闪光)→ 主角照片加标题 → 淡出。长镜头放在慢速小节,一拍一剪用于增强能量感。 - build_shots.py →
work/base.mp4(每个镜头加入缓入缓出的推拉效果和对焦点)。 - FX 通道(独立 ffmpeg):电影级调色(高光柔和、青色调阴影/暖色调高光)、辉光、暗角、颗粒 →
work/fx.mp4。保持与叠加通道分离。 - compose.py:合成标题、白色/琥珀色闪光(
FLASHES = (节拍、颜色、时长、透明度))、音效(高潮拍点上的撞击/低频增强、之前的上升音效、照片上的快门声)、歌曲主轨 → 最终合成。 - 交付:归一化到
-14 LUFS,--tp -1.5,AAC 320k,运行qc.py --platform reels。生成结果的联系表。
标题规则(从反馈中学习)
使用粗体的 Optima 风格标题,并搭配强力的渐变/阴影——较淡的标题曾被拒绝(v1→v2)。将文字保持在安全边距内(v3)。将结束画面的文字放在纯色区域(例如车顶)上,以确保人脸/车牌清晰。典型的结束文字:WELCOME HOME / FAMILY NAME / DELIVERY DAY。
缩略图(始终生成,用户要求于2026-10-16)
每次导出(以及与每个预览同时)生成 exports/vN_cover_reels_1080x1920.jpg(所有文字位于中心 1080x1440 区域内,即 Instagram 3:4 网格裁剪范围)和 exports/vN_thumb_youtube_1280x720.jpg,使用最清晰的全分辨率照片/帧,调色风格与视频一致,配上粗体 Montserrat Black 标题、品牌黄色高亮和真实 Logo。请使用 thumbnail-designer 技能。