SwissKnife Docs
SwissKnife betreiben

FFmpeg WASM

Selbst gehosteter Core, erster Ladevorgang, SharedArrayBuffer und Lizenzen.

Die Audio-/Video-Engine ist kein auf dem Server installiertes FFmpeg-Programm. Sie ist ein WebAssembly-Build, der im Browser geladen und vom selben Ursprung bereitgestellt wird.

Dateien

Nach npm run build wird der Core nach dist/ffmpeg/ kopiert:

  • /ffmpeg/ffmpeg-core.js
  • /ffmpeg/ffmpeg-core.wasm (etwa 32 MB)

ffmpegEngine.ts lädt diese URLs über toBlobURL mit einem Timeout von 120 Sekunden. Beobachtete Meldung: „FFmpeg-Engine bereit (lokale Kopie, ein Thread).“

Warum COOP/COEP erforderlich ist

FFmpeg.wasm benötigt SharedArrayBuffer. Browser stellen es nur bereit, wenn die Seite ursprungsübergreifend isoliert ist (COOP same-origin + COEP require-corp). Vite-Entwicklung, Vorschau, das Nginx-Setup in Docker und die Vercel-Demo setzen diese Header. Entfernt ein Proxy sie, fällt nur die Medien-Engine aus.

Warteschlange

Es gibt eine Instanz und eine sequenzielle Job-Warteschlange. Bildkonvertierungen über Canvas verwenden diese Instanz nicht.

Lizenzen

SwissKnife steht unter der MIT-Lizenz. Laut Dokumentation von ffmpeg.wasm enthält der gebündelte Core x264. Prüfe NOTICE.md, bevor du die Anwendung mit der WASM-Datei weitergibst.

Öffentliche Referenzen:

Gehe nicht davon aus, dass die MIT-Lizenz des Repositorys FFmpeg oder x264 abdeckt.

Auf dieser Seite