video2slides: 重构为纯客户端 app(浏览器抽帧 + IndexedDB),后端归零
deploy articulate / build-and-deploy (push) Successful in 1m1s
deploy cube / build-and-deploy (push) Successful in 1m22s
deploy karaoke / build-and-deploy (push) Successful in 55s
deploy llm-proxy / build-and-deploy (push) Successful in 1m44s
deploy music / build-and-deploy (push) Successful in 2m14s
deploy notes / build-and-deploy (push) Successful in 1m40s
deploy simpleasm / build-and-deploy (push) Successful in 1m17s
deploy video2slides / build-and-deploy (push) Successful in 39s
deploy werewolf / build-and-deploy (push) Successful in 1m7s
deploy webgl / build-and-deploy (push) Successful in 1m17s
deploy write / build-and-deploy (push) Successful in 1m13s

- 不再上传视频:<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)验证:抽帧/差异/阈值/持久化/导出 全通过
This commit is contained in:
Fam Zheng
2026-06-14 22:25:20 +01:00
parent ef29561b28
commit a0253e118f
10 changed files with 648 additions and 1709 deletions
+5 -22
View File
@@ -12,9 +12,6 @@ metadata:
app: video2slides
spec:
replicas: 1
# 用了 hostPath + 单副本,重建时先杀旧的再起新的,避免两个 pod 抢同一目录
strategy:
type: Recreate
selector:
matchLabels:
app: video2slides
@@ -32,14 +29,6 @@ spec:
ports:
- containerPort: 8080
name: http
env:
- name: VIDEO2SLIDES_DATA_DIR
value: "/data"
- name: VIDEO2SLIDES_DIST_DIR
value: "/dist"
volumeMounts:
- name: data
mountPath: /data
readinessProbe:
httpGet:
path: /healthz
@@ -52,20 +41,14 @@ spec:
port: http
initialDelaySeconds: 5
periodSeconds: 15
# 纯静态文件服务,几乎不吃资源
resources:
requests:
cpu: 50m
memory: 128Mi
cpu: 10m
memory: 16Mi
limits:
# ffmpeg 抽帧 + image 解码比较吃 CPU/内存,给足
cpu: "2"
memory: 1Gi
volumes:
- name: data
hostPath:
# 上传的视频 + 抽出的帧落在节点本地盘,pod 重启不丢(单节点 k3s)
path: /var/lib/cube/video2slides
type: DirectoryOrCreate
cpu: 200m
memory: 64Mi
---
apiVersion: v1
kind: Service