docs: update PROGRESS.md - 视频时间语义修正
This commit is contained in:
16
PROGRESS.md
16
PROGRESS.md
@@ -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` 参数,偏移 = 帧时间 − 视频开始时间(跨午夜 +86400);orchestrator 透传;ffprobe 时长过滤超界片段;fps=15 统一 CFR |
|
||||||
|
| 2 | NAS dispatcher | `event_start_time` 用文件 mtime(=录制**结束**时刻),事件整体后移一个视频周期(~30min) | 新增 `_probe_duration`(ffmpeg 解析 Duration,NAS 无独立 ffprobe),start = 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 时区(非凤凰城 MST),NAS 与视频均为北京时间,网页要求统一北京时区。
|
**背景**: Oracle Edge 机器实际为 UTC 时区(非凤凰城 MST),NAS 与视频均为北京时间,网页要求统一北京时区。
|
||||||
|
|||||||
Reference in New Issue
Block a user