docs: update PROGRESS.md - 视频时间语义修正

This commit is contained in:
ericwyuan
2026-08-20 17:58:50 +08:00
parent 80b2fcc40c
commit 47cee9db4f

View File

@@ -1,6 +1,6 @@
# 项目进度追踪 # 项目进度追踪
> 最后更新: 2026-08-20 17:45 > 最后更新: 2026-08-20 18:05
## 服务运行状态 ## 服务运行状态
@@ -161,6 +161,20 @@
19. **chunk_size 变更防护** - Edge 端 upload_chunk 检测 total_chunks 变更(由 chunk_size 变化导致),自动清理旧分块防止混合不同大小分块导致 assemble 后文件损坏。NAS 端 _query_uploaded_chunks 比对 expected_total != edge_total 时跳过断点续传 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 标志,防止线程假死误报 20. **看门狗机制** - app.py 启动 daemon 看门狗线程,每 60s 检查 scheduler/dispatcher/poller 线程 is_alive(),崩溃自动 check_and_restart()。/api/status 改用 thread.is_alive() 替代 _running 标志,防止线程假死误报
## 视频时间语义修正 (2026-08-20 18:05, commit 80b2fcc)
时区统一的延伸排查发现三处**时间语义** bug时区对了但语义错
| # | 位置 | 问题 | 修复 |
|---|------|------|------|
| 1 | NVIDIA 集锦偏移 | frame_timestamps 是绝对时间(`21:31:14`→当日 77474s被直接当视频内偏移seek 超出 30min 视频 → 0 帧 → 集锦恒空 → 视频模式永远降级逐帧 | `analyze_video` 增加 `event_start_time` 参数,偏移 = 帧时间 视频开始时间(跨午夜 +86400orchestrator 透传ffprobe 时长过滤超界片段fps=15 统一 CFR |
| 2 | NAS dispatcher | `event_start_time` 用文件 mtime=录制**结束**时刻),事件整体后移一个视频周期(~30min | 新增 `_probe_duration`ffmpeg 解析 DurationNAS 无独立 ffprobestart = mtime duration |
| 3 | 直传超时 | 压缩后 ~19MB 低于 20MB 阈值走直传,`timeout(10,120)` 在 1Mbps 下传 19MB 需 ~152s 必超时task 42 三连败) | 加大到 `(10, 300)` |
**两轮测试数据陷阱**:集锦 0KB/9.47s 异常均为测试时间戳超出视频时长1801s > 1800s所致单输入与多输入 concat 行为本身正常——生产帧时间戳必在视频内,已加防护过滤。
**数据治理**:历史 FAILED 全量重置后 307 PENDING其中 36 个源文件已被 NAS 清理 → 标记 FAILED'源文件已清理,跳过处理'failure_stage 枚举无 'dispatch' 用 'callback'271 个有效任务排队消化(~54h
## 时区统一北京时区 (2026-08-20 17:45, commit 795e8ac) ## 时区统一北京时区 (2026-08-20 17:45, commit 795e8ac)
**背景**: Oracle Edge 机器实际为 UTC 时区(非凤凰城 MSTNAS 与视频均为北京时间,网页要求统一北京时区。 **背景**: Oracle Edge 机器实际为 UTC 时区(非凤凰城 MSTNAS 与视频均为北京时间,网页要求统一北京时区。