# MiniCPM V4.7 视频理解：按实际抽帧定位事件，给回答保留帧号与时间证据

## 执行范围

已生成并实际解码8秒原创视频，ffprobe取得240帧PTS及两次过线作者真值；MiniCPM V4.7未下载或推理，帧号参考不是模型回答。

## 输入与目标

原创8秒视频含先后两次相似动作和一个无事件区间，附真实PTS

交付：原生推理响应、事件帧联系图和帧号/PTS清单

## 运行

以下输入查看命令从练习包根目录执行；先按文件 requirements.txt / package.json 或原生工具文档安装依赖。浏览器练习需 `npx playwright install chromium`；也可设置 `PLAYWRIGHT_EXECUTABLE_PATH` 为自己的 Chrome 路径。

```sh
ffprobe -select_streams v:0 -show_frames -show_entries frame=pts,best_effort_timestamp_time -of csv fixtures/two-crossings-8s.mp4
# 自有MiniCPM环境再推理
```

## 目录

- fixtures：作者原创输入，不包含用户真实资料。
- starter：读者待完成任务。
- reference：作者完成参考。
- results：作者实际运行所得或明确标注的待运行输入/预期合同。

## 七步

1. **核对原视频时基**

先看8.000秒、30fps与240帧真实元数据，不假定任意视频都用恒定帧率。原始视频与SHA另存文件核对。

2. **建立事件真值**

原创球心分别在1.5秒/frame45和5.5秒/frame165过线，3–4.5秒没有事件。真值来自作者轨迹和实际解码，不是模型输出。

3. **按PTS抽具体帧**

查看frame-pts.csv，在两个事件前后各留帧，保留1.466667/1.5/1.533333等实际时间，避免只有整秒缩略图漏过线时点。

4. **限定视频问答**

在自己的MiniCPM环境要求回答过线事件、方向、证据帧与不确定范围。本题不下载模型权重，不把抽帧本身说成模型理解成功。

5. **逐事件回看**

把模型给出的时点映射回真实PTS和帧号，确认球心与线的位置。回答“前半段过线”不足以支持精确事件结论。

6. **检查无事件区间**

查看3.5秒负例帧，确认没有第三次过线。模型应区分静止在画面中与发生过线事件。

7. **移交证据包**

保存原视频、11张解码帧、PTS表与作者事件参考。只有在真实推理后，才把模型回答另存到results并计算漏报/误报。

## 来源

- https://huggingface.co/openbmb/MiniCPM-V-4.7-1B/raw/main/README.md


## 可运行的本地脚本

模型脚本未由作者执行，不自动下载权重。自备本地模型目录及官方依赖后，从包根执行 `(cd reference && python infer_local.py --model-dir <existing-local-model-dir>)`；模型路径应为自己的绝对路径。推理结果另存results，作者参考真值不应作为模型输入。
