- 不再上传视频:<video>+canvas 原生解码按时间戳 seek 抽帧,逐帧 256px 灰度 MAE 算差异,缩略图(320)+大图(1280) 随抽随写 IndexedDB,带进度条+ETA - 阈值/手动 保留弃用/缩放偏好 持久化到 IndexedDB,刷新仍在 - PDF 导出回到客户端 jsPDF,保留帧逐张 base64 嵌入、单帧处理防 OOM - 后端删光业务逻辑(core.rs/handlers.rs),main.rs 缩成 cube_core::base 静态服务 - 不再需要 ffmpeg → Dockerfile 回归 FROM scratch;k8s 去掉 hostPath 卷、降资源 - 真浏览器(Playwright)验证:抽帧/差异/阈值/持久化/导出 全通过
- 点击卡片切换 use/discard,手动覆盖阈值判定;手动标记角标 + 重置按钮 - 导出 PDF:后台 job,逐张把帧 JPEG 以 DCTDecode 直接嵌入、边读边写到磁盘, 内存峰值只一张帧,防大视频 OOM;前端轮询进度条 - 下载走流式(ReaderStream),不把整份 PDF 读进内存;?c= query 触发下载 - 手撸极简 PDF writer(无新 PDF 依赖),只扫 JPEG 头取宽高分量数
Rust + axum + cube-core,前端纯静态单页。ffmpeg 每 N 秒抽一帧(限宽 1280),image crate 逐帧灰度 MAE 算差异;前端拖阈值实时把相近帧变灰、 关键变化高亮,悬停出彩色大图,分页 + toolbar 常驻。按 X-Client-Id 分目录 隔离,存储走 hostPath。镜像非 scratch:debian-slim + ffmpeg + musl binary。