docs: add real video benchmark results to PROGRESS.md

- 30min 360MB video pipeline: 70s transfer + 39s keyframe + 820s AI = 929s total
- FFmpeg fast seek optimization: 180s+ → 33s (6-8x faster)
- AI analysis is the bottleneck: avg 68s/frame, 0.9 tokens/s on ARM CPU
This commit is contained in:
ericwyuan
2026-08-20 02:31:06 +08:00
parent 7ce8aff67c
commit 5adda97829

View File

@@ -1,6 +1,6 @@
# 项目进度追踪
> 最后更新: 2026-08-20 01:25
> 最后更新: 2026-08-20 02:10
## 服务运行状态
@@ -107,14 +107,16 @@
| 27 | NAS 安装 Streamlit + pandas + 部署 FAM-UI | ✅ 完成 | 2026-08-20 |
| 28 | Ollama 模型常驻内存 (OLLAMA_KEEP_ALIVE=-1) | ✅ 完成 | 2026-08-20 |
| 29 | 关键帧提取改为自适应帧数 (随视频时长动态计算) | ✅ 完成 | 2026-08-20 |
| 30 | FFmpeg 快速 seek 替代 fps 滤镜 (6-8x 提速) | `7ce8aff` | 2026-08-20 |
| 31 | 真实视频性能基准测试 (30min 360MB 视频) | ✅ 完成 | 2026-08-20 |
### 待完成
| # | 任务 | 依赖 | 优先级 |
|---|------|------|--------|
| 30 | 视频端到端集成测试 | FAM-UI ✅ | 高 |
| 31 | 单元测试 (JSON parser, circuit breaker, schema) | - | 中 |
| 32 | Tailscale 防火墙修复 (NAS↔Oracle) | - | 低 |
| 32 | 视频端到端集成测试 | FAM-UI ✅ | 高 |
| 33 | 单元测试 (JSON parser, circuit breaker, schema) | - | 中 |
| 34 | Tailscale 防火墙修复 (NAS↔Oracle) | - | 低 |
## 技术决策记录
@@ -128,6 +130,22 @@
8. **Oracle 公网 IP 替代 Tailscale** - Tailscale 两节点在线但端口不通防火墙edge_url 和 ollama_url 改用 Oracle 公网 IP 129.146.203.203
9. **Ollama 模型常驻内存** - systemd 加 `OLLAMA_KEEP_ALIVE=-1`,模型加载后永不卸载,消除 55s 冷启动延迟,常驻占用 4.3GB 内存(系统 12GB 够用)
10. **关键帧自适应帧数** - 原固定 5-8 帧对长视频太稀疏30分钟仅8帧=每3.75分钟1帧改为随视频时长自适应候选帧 `clamp(duration_min×2, 30, 120)`,关键帧上限 `clamp(duration/150s, 8, 30)`。30分钟→12帧60分钟→24帧封顶30帧
11. **FFmpeg 快速 seek 替代 fps 滤镜** - 原方案 `ffmpeg -vf fps=1/interval` 需全解码视频30min 360MB 视频在 ARM CPU 上需 180s+(超 120s 超时)。改为逐帧 `ffmpeg -ss <ts> -frames:v 1` 快速 seek仅 33s6-8x 提速)
## 真实视频性能基准测试 (2026-08-20)
测试视频: `Generic_ONVIF-001-20260819-210403` (30分钟, 360MB, 1080p H.264)
| 步骤 | 耗时 | 详情 |
|------|------|------|
| 1. 视频传输 (NAS→Oracle) | 70s | 360MB, 5.1 MB/s (Tailscale) |
| 2a. FFmpeg 快速 seek 抽帧 | 33s | 60 张候选帧 (每30s一张) |
| 2b. OpenCV 关键帧筛选 | 5s | MSE 帧差 → 12 张关键帧 |
| 2c. 压缩 | 0.6s | 12 帧, 总 1.9MB |
| 3. Ollama llava-phi3 分析 | 820s | 12 帧, avg 68s/帧, 0.9 tokens/s |
| **总计** | **929s (15.5min)** | 30 分钟视频处理 |
AI 分析瓶颈: 帧5耗时 229s (疑似 ARM CPU 热降频), 其余帧 50-65s
## FAM-Core API 测试结果 (2026-08-20)