SwissKnife Docs
Exploitation

FFmpeg WASM

Core auto-hébergé, premier chargement, SharedArrayBuffer et licences.

Le moteur audio/vidéo n'est pas un binaire FFmpeg installé sur le serveur. C'est un build WebAssembly chargé dans le navigateur, servi par la même origine.

Fichiers

Après npm run build, le core est copié dans dist/ffmpeg/ :

  • /ffmpeg/ffmpeg-core.js
  • /ffmpeg/ffmpeg-core.wasm (environ 32 Mo)

ffmpegEngine.ts charge ces URL via toBlobURL, avec un délai de 120 s. Message observé : « Moteur FFmpeg prêt (copie locale, un seul thread). »

Pourquoi COOP/COEP

FFmpeg.wasm s'appuie sur SharedArrayBuffer. Les navigateurs ne l'exposent que si la page est isolée (COOP same-origin + COEP require-corp). Dev Vite, preview, Nginx Docker et la démo Vercel posent ces en-têtes. Un proxy qui les enlève casse uniquement le moteur média.

File d'attente

Une instance, une chaîne de jobs. Les images Canvas n'utilisent pas cette instance.

Licences

SwissKnife est MIT. Le core bundlé est documenté par ffmpeg.wasm comme incluant x264. Relire NOTICE.md avant de redistribuer l'application avec le WASM.

Références publiques :

Ne supposez pas que la licence MIT du dépôt couvre FFmpeg ou x264.

On this page