video2slides: 加 PDF 导出(服务端流式)+ 点击切换帧 保留/弃用
- 点击卡片切换 use/discard,手动覆盖阈值判定;手动标记角标 + 重置按钮 - 导出 PDF:后台 job,逐张把帧 JPEG 以 DCTDecode 直接嵌入、边读边写到磁盘, 内存峰值只一张帧,防大视频 OOM;前端轮询进度条 - 下载走流式(ReaderStream),不把整份 PDF 读进内存;?c= query 触发下载 - 手撸极简 PDF writer(无新 PDF 依赖),只扫 JPEG 头取宽高分量数
This commit is contained in:
@@ -35,6 +35,9 @@ async fn main() -> std::io::Result<()> {
|
||||
.route("/videos/:id/frames", get(handlers::frames))
|
||||
.route("/videos/:id/thumb/:idx", get(handlers::thumb))
|
||||
.route("/videos/:id/frame/:idx", get(handlers::frame))
|
||||
.route("/videos/:id/pdf", post(handlers::export_start))
|
||||
.route("/videos/:id/pdf/status", get(handlers::export_status))
|
||||
.route("/videos/:id/pdf/download", get(handlers::export_download))
|
||||
.layer(DefaultBodyLimit::disable()) // 视频上传可能很大,关掉默认 2MB 限制
|
||||
.with_state(state);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user