Files
labelmain-demo/app/component/label/ffmpeg
2026-02-12 17:30:29 +08:00
..
2026-02-03 18:05:47 +08:00
2026-02-03 18:05:47 +08:00
2026-02-12 17:30:29 +08:00
2026-02-03 18:05:47 +08:00
2026-02-03 18:05:47 +08:00
2026-02-12 17:30:29 +08:00

Video Frame Extractor (FFmpeg.wasm)

运行位置

  • 纯前端:所有转码/抽帧在浏览器 Web Worker + WASM 内完成,不依赖后端服务。

大文件最佳实践

  • 优先使用 WORKERFS 挂载输入文件,避免 writeFile(arrayBuffer) 将整段视频复制进 WASM 内存。
  • 抽帧建议走“单帧模式”:每次 -ss <time> -frames:v 1 只产出一张,读取后立即删除,避免在 WASM 内累积。
  • 输出建议使用 image2 序列 pattern例如 frame_%06d.jpg)并配合 -start_number,避免 image2 的“必须是序列 pattern”报错路径。
  • UI 端必须对日志与图片列表做上限与释放(URL.revokeObjectURL),否则长视频会导致 JS 堆持续增长。

故障恢复

  • 一旦出现 Aborted() / memory access out of bounds,当前 FFmpeg.wasm 实例可能进入不可恢复状态,需要 terminate 并重建实例/worker。