docs: update PROGRESS.md - NVIDIA原生视频输入切换调研与实现

This commit is contained in:
ericwyuan
2026-08-20 17:22:08 +08:00
parent 55633d3302
commit 4553ec6f07

View File

@@ -1,6 +1,6 @@
# 项目进度追踪
> 最后更新: 2026-08-20 16:30
> 最后更新: 2026-08-20 17:25
## 服务运行状态
@@ -161,6 +161,26 @@
19. **chunk_size 变更防护** - Edge 端 upload_chunk 检测 total_chunks 变更(由 chunk_size 变化导致),自动清理旧分块防止混合不同大小分块导致 assemble 后文件损坏。NAS 端 _query_uploaded_chunks 比对 expected_total != edge_total 时跳过断点续传
20. **看门狗机制** - app.py 启动 daemon 看门狗线程,每 60s 检查 scheduler/dispatcher/poller 线程 is_alive(),崩溃自动 check_and_restart()。/api/status 改用 thread.is_alive() 替代 _running 标志,防止线程假死误报
## NVIDIA 原生视频输入切换 (2026-08-20 17:25, commit 55633d3)
**调研结论**(免费托管 API `integrate.api.nvidia.com`40 RPM 无限次调用):
| 模型 | 状态 | 说明 |
|------|------|------|
| nvidia/nemotron-3-nano-omni-30b-a3b-reasoning | ✅ 采用 | Omni 模型,原生支持 video_url 输入MP4base64 data URI |
| meta/video-llama3-8b-instruct | ❌ 404 已下线 | 曾是 NVIDIA 官方视频理解模型 |
| qwen/qwen2.5-vl-72b-instruct | ❌ 404 | 该 ID 不存在 |
**实现**NVIDIA 从"逐帧单图调用"切换为**原生视频输入**
1. `analyze_video`:按关键帧时间点截取 ±1.5s 片段drawtext 叠加时间戳,用连字符 `00-05-00` 避免 ffmpeg 冒号转义拼成集锦视频640 宽 CRF28~35KB/片段base64 后 `video_url` 单次调用
2. 输出全 schema JSONframe_details + global_summary + entities_json归一化对齐时间戳
3. `analyze_frames` 保留为降级路径orchestrator 传 `video_path`,优先视频模式失败自动降级逐帧
4. timeout 20→120schat max_tokens 512→2048reasoning 模型 token 消耗大)
**实测**360MB 测试视频3 关键帧):集锦 107KB全程 37s动态动作识别准确走动→坐沙发→坐餐桌跨片段综合摘要正常——**显著优于旧逐帧静态识别**。
**注意**nemotron-omni 为 reasoning 模型10s 视频 ~20s 返回Gemini 仍是首选(多图 34sNVIDIA 视频模式作为同级降级链路。
## Gemini 视觉解析排查 + 业务全流程梳理 (2026-08-20 16:30, commit f4e7424)
**结论: Gemini 可以解析视频(多帧视觉分析),且有 40s 完成整段分析的实测记录,但当前被三重问题压制**