From 3a3b68c428a36a5d7e71a233ffbb15d28469f8b8 Mon Sep 17 00:00:00 2001 From: ericwyuan Date: Thu, 20 Aug 2026 22:07:57 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20update=20PROGRESS.md=20-=20=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E4=BA=8B=E4=BB=B6=E5=85=B3=E9=94=AE=E5=B8=A7=E8=A1=A5?= =?UTF-8?q?=E6=8A=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROGRESS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/PROGRESS.md b/PROGRESS.md index 0b1d627..a2bd33f 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -369,3 +369,15 @@ AI 分析瓶颈: 帧5耗时 229s (疑似 ARM CPU 热降频), 其余帧 50-65s **经验** - Streamlit 1.61 窄视口(<960px)下 st.columns 自动垂直堆叠,详情区被挤到事件列表下方;浏览器自动化验证需注意 window 尺寸,用户桌面浏览器不受影响 - 旧事件(新代码部署前)无落盘帧图属预期,占位符正常显示 + +## 历史事件关键帧补抽 (2026-08-20 22:05, commit 8a333d7) + +**现象**:用户打开 UI "全是暂无帧图"。落盘链路本身正常(event 29-39 持续产出),根因是**事件列表按 event_start_time 倒序,第一屏前 11 条全是帧图注入上线前的旧事件(2026-08-20 的 event 8-17),有帧图的新事件都是 2026-08-15 录像、排在列表深处**。 + +**修复**:`fam-core/tools/backfill_frames.py` 从原始视频补抽关键帧 +- 偏移计算:offset = frame_timestamp - event_start_time(5 分钟间隔帧) +- NAS ffmpeg41 没有 image2 muxer(`-f image2` 报 not suitable),也没有 ffprobe → 用 `-f singlejpeg` 输出 jpg,用 ffmpeg header 的 `Duration:` 行解析时长 +- 抽帧参数与预压缩一致:480p 等比缩放 + `-q:v 5`(~53KB/张) +- 幂等:单帧文件存在跳过,帧数齐全的事件整条跳过 +- 实跑:11 事件 65 帧全部成功,8.1MB;2026-08-14 的 10 个事件(event 18-27)视频已被 NAS 清理无法补,UI 占位符兜底 +- 浏览器验证:默认打开的最新事件 #11 帧图 6/6 全部加载,无占位符