用途:让 Claude 以图像方式理解视频内容。做法是在视频时长内均匀抽帧,拼成带时间戳的 contact sheet(拼图),再逐张读取。4×4 拼图把约 16 个瞬间压缩为一张图,保留叙事顺序与大致时间点。
依赖:需要 ffmpeg/ffprobe,缺失时可执行 apt-get update && apt-get install -y ffmpeg。
主要能力与用法:
- 先探测:ffprobe -v quiet -print_format json -show_format -show_streams input.mp4,查看时长、分辨率、是否有音轨。
- 生成拼图:python3 scripts/contact_sheet.py input.mp4(整段 1 张 4x4);--sheets 3 生成 3 张共 48 帧;--start 120 --end 300 只看 2:00–5:00;--grid 3x3 --tile-width 500 用更少更大的格子。脚本会探测时长、在区间中点采样、在每格左下角标注来源时间戳(H:MM:SS),输出 <name>_sheet_NN.png 并打印每张的时间范围。
- 读取与解读:格子按时间从左到右、从上到下排列,用时间戳锚定观察;第 N 张最后一格紧接第 N+1 张第一格。
- 需要细看时:用 --start/--end 配合更高分辨率重新生成,或提取单帧 ffmpeg -ss 00:01:42 -i input.mp4 -frames:v 1 detail.png。
内容感知采样:均匀采样保证时间覆盖但忽略结构。剪辑类内容可用镜头切换点(ffmpeg scene 分数,阈值 0.3–0.4),连续拍摄内容可用停留点(scripts/dwell_points.py,默认取信号 p40 以下、持续至少 1 秒的区间中点)。两者都通过 --at 传入。注意场景检测对渐变转场、镜头内变化不敏感,且镜头运动可能误报,宜作为均匀采样的补充。
多片段剪辑审查:对最终拼接成片做拼图,而非只看单条片段;scripts/seams.py 可把相邻片段的末帧与首帧配对成一行,便于检查接缝处的角色、道具、物理逻辑与动作完整性。
限制:拼图每格约 380 px 宽,小字、密集文本、细小 UI 细节不可读,应改取全分辨率帧;拼图无声,语音内容需单独提取音频转写;帧精确分析(体育判罚、VFX 质检)不适用,应在窄窗口内逐帧提取;采样之间的事件不可见,只能报告可见内容,时间戳精度约 1 秒。转换、裁剪、合并、压缩、GIF、字幕等任务应使用 processing-video 技能。