用途:对视频广告做确定性的节奏审查,识别两类节奏问题——剪切点与音乐节拍错位(离最近节拍超过容忍值),以及场景过长且画面几乎静止的拖沓段落,从而提升成片的专业感与留存。
主要能力:使用 ffmpeg 的 scene-detect 滤镜检测剪切点(命令:ffmpeg -i <video_path> -vf "select='gt(scene,0.4)',showinfo" -f null - 2>&1),用 librosa 的 beat_track 检测音乐节拍与 tempo;对每个剪切点计算与最近节拍的差值 delta_ms 并标记 on-beat/off-beat;对超过阈值的场景以 4fps 采样、计算相邻帧平均绝对差,均值低于 2 视为静止拖沓;用 matplotlib 生成节奏叠加图(波形、节拍线、剪切线按是否对齐标绿/红、拖沓区间标黄),不可用时输出 ASCII 摘要;最终写出报告,含 tempo、剪切统计、错位表、拖沓表与 APPROVED/NEEDS REVISION 结论。
输入:video_path(必需);music_path(默认在 <video_folder>/audio/variants/<active>/music.mp3,否则从视频提取音频);output_dir(默认 <video_folder>/review-notes/pacing-<ts>/);beat_tolerance_ms(默认 100);scene_drag_threshold_s(默认 4.0)。
输出:cuts.json、beats.json、pacing-overlay.png(或 pacing-overlay.txt)、pacing-report.md、manifest.json。
质量校验与限制:若 librosa 返回的 BPM 不合理(低于 40 或高于 220)标记 tempo_uncertain;无音乐床时跳过节拍检测,仅报告拖沓场景(beat_check: skipped (no_music));音乐中途消失时其后的剪切点无法评分;刻意错位的情况由操作者判断;librosa 不可用时应中止并给出 pip install librosa,不做仅 ffmpeg 的降级节拍检测。