| name | video-analyzer |
| description | 从视频中提取连续帧、然后用视觉逐帧分析画面内容的技能,专为嵌入式软件开发调试设计。
当用户需要分析装置录像、找出显示屏中的逻辑异常(数值跳位、状态异常、界面错误等)时使用此技能。
触发场景(符合其中一条即触发,不要等用户说"用视频分析技能"):
- 用户提供了视频路径,要求分析、查问题、看哪里有异常
- 用户说视频里有"跳位""跳号""报告不连续""状态异常""数据乱跳"等现象
- 用户想从录像中找出某个具体问题发生的时间点
- 用户描述了嵌入式装置的显示屏或操作界面出现了异常,附有录像
注意:此技能不依赖预设规则——异常判断完全由 Claude 视觉分析完成,每次根据用户描述的具体现象来判断。
|
工作流程
第一步:明确异常描述
从用户消息中提取:
- 视频文件路径(必须)
- 要找的异常现象(必须)——如果用户没说,问一句:"请描述一下视频中应该出现什么异常?比如数值跳位、界面卡死、报告编号不连续等。"
第二步:提取帧
python "<SKILL_DIR>/scripts/extract.py" "<视频路径>" [--fps N] [--max-frames N]
<SKILL_DIR> 是本 SKILL.md 所在目录的绝对路径
- 默认最多提取 60 帧(通常足够);如视频较长或需要更细粒度,用
--max-frames 调大
- 如果用户关心快速变化的内容(如数字跳变),可用
--fps 指定更高帧率(如 --fps 5)
- 脚本输出
MANIFEST=<路径> 一行,以及完整帧列表
第三步:逐帧视觉分析
读取每一张帧图片(用 Read 工具读取图像文件),结合用户描述的异常现象,分析画面内容:
分析策略:
- 按时间顺序逐帧观察,记录每帧的关键信息(显示的数值、状态、界面元素)
- 与前一帧对比,找出异常变化点
- 对于"数值跳位"类异常:记录每帧的数值变化序列,标记出跳变位置
- 对于"状态异常"类:关注界面状态切换是否符合逻辑
- 对于"报告不连续"类:关注序号、编号、记录号是否有跳跃
效率技巧:
- 先快速浏览首帧、末帧和几个中间帧,建立对画面内容的理解
- 再针对可疑区域密集分析
- 如果帧数较多(>20),可先每隔 3-5 帧读一张做粗扫,确定大致范围后再细看
第四步:输出分析结果
向用户汇报:
- 视频基本信息(时长、分辨率)
- 逐帧内容摘要——简述每帧画面的关键数据/状态
- 发现的异常——精确到时间戳,描述"X 时刻 → Y 时刻 发生了什么"
- 分析结论——结合用户提供的代码或背景,推测可能的原因
第五步(可选):保存分析报告
如有必要,将分析结论写入输出目录下的 analysis_report.md:
<视频所在目录>/video-analyzer/<视频名>/analysis_report.md
参数说明
| 参数 | 说明 | 默认 |
|---|
--fps N | 提取帧率,N 越大帧越密,适合快速变化内容 | 自动(≈ max-frames ÷ 视频时长) |
--max-frames N | 最多提取帧数 | 60 |
经验参考:
- 6 秒视频,默认约 10fps → 60 帧,可以看到每 0.1 秒的变化
- 60 秒视频,默认 1fps → 60 帧,每秒一张
- 关注细微数字变化:用
--fps 5 或更高
- 只需快速定位大致位置:用
--max-frames 20
config.json
只存 ffmpeg 路径,首次运行时自动生成:
{
"ffmpeg_path": "C:/ffmpeg/bin/ffmpeg.exe"
}