ffmpeg-webCLI

ffmpeg-webCLI

C'EST QUOI ?

Un éditeur vidéo qui tourne entièrement dans le navigateur, construit sur ffmpeg.wasm (FFmpeg compilé en WebAssembly). Les fichiers ne quittent jamais la machine : le traitement s'exécute dans un Web Worker, sans upload ni backend. Malgré son nom, l'interface expose plus de 30 opérations prêtes à l'emploi (conversion, découpe, GIF, sous-titrage automatique...) ; la ligne de commande brute n'est qu'un mode parmi d'autres.

POURQUOI C'EST INTÉRESSANT ?

  • Tout en local : FFmpeg s'exécute en WebAssembly dans un Web Worker. Aucune donnée n'est envoyée à un serveur, rien n'est collecté, et l'interface reste réactive pendant l'encodage.
  • 30+ opérations : conversion MP4/WebM/MKV/MOV/AVI, compression, découpe, crop, création de GIF, extraction audio, concaténation, picture-in-picture, denoise, normalisation audio, entre autres.
  • Sous-titres automatiques : la transcription Whisper tourne aussi dans le navigateur via Transformers.js, avec incrustation (hard-burn) ou piste embarquée au choix.
  • Mode Stack et batch : les filtres compatibles s'enchaînent en une seule passe d'encodage, donc pas de perte de qualité cumulée entre les étapes. Le mode batch traite plusieurs fichiers à la suite, avec prévisualisation par fichier et export ZIP.
  • Raw FFmpeg et offline : un champ libre donne accès à la ligne de commande ffmpeg complète, avec prévisualisation de la commande et bibliothèque d'exemples. L'app s'installe en PWA et fonctionne hors ligne une fois le binaire ffmpeg-core (~31 Mo) mis en cache.

CAS D'USAGE

  • Convertir ou compresser une vidéo sans passer par un convertisseur en ligne qui envoie le fichier on ne sait où.
  • Traiter des rushes confidentiels (démos clients, captures internes) sans qu'ils quittent le poste.
  • Générer un GIF ou un extrait court pour une doc, une PR ou un ticket.
  • Sous-titrer une vidéo courte sans rien installer sur la machine.
  • Tester une commande ffmpeg dans le navigateur avant de l'intégrer à un script.

La limite est celle du runtime : le heap WebAssembly plafonne à 2 Go, certaines opérations (reverse, boomerang) sont désactivées en batch pour cette raison, et les très gros fichiers restent le terrain du ffmpeg natif.