Ez FFmpeg – le montage vidéo en anglais courant
(npmjs.com)- Outil CLI basé sur Node.js conçu pour exécuter des commandes ffmpeg en anglais courant, permettant d’éditer des vidéos avec des phrases simples sans options complexes
- Si l’on saisit une commande sous forme de phrase comme
ff convert video.mp4 to gif, elle est automatiquement convertie en commande ffmpeg puis exécutée - Prend en charge la conversion de format, la compression, le découpage, l’extraction audio, le redimensionnement, le réglage de vitesse, la rotation, la fusion, etc.
- Avec l’option
--dry-run, il est possible de prévisualiser la commande ffmpeg sans l’exécuter réellement - Fonctionne rapidement hors ligne, sans connexion Internet ni IA, et peut être utilisé avec Node.js 16 ou plus dans un environnement où ffmpeg est installé
Présentation
- ezff est un wrapper en anglais courant conçu pour rendre ffmpeg plus facile à utiliser
- L’utilisateur peut saisir des commandes en langage naturel sans avoir à mémoriser les drapeaux complexes de ffmpeg ni son manuel
- Exemple :
ff convert video.mp4 to gif→ génère automatiquement une commande ffmpeg et l’exécute
- Node.js 16 ou plus et ffmpeg installé sont nécessaires, et l’installation peut se faire via npm avec
npm install -g ezff
Fonctionnalités principales
- Mode d’invite interactif
- Si l’on saisit simplement la commande
ff, l’outil demande successivement le chemin du fichier, le type d’opération, le format de sortie, etc. - Exemple :
? File path: video.mp4 ? What do you want to do? › Convert format ? Convert to: › GIF - Une fois les choix effectués, la commande ffmpeg est générée et exécutée automatiquement
- Si l’on saisit simplement la commande
- Mode de saisie directe des commandes
- L’utilisateur peut saisir l’opération souhaitée sur une seule ligne
- Exemples :
ff convert video.mp4 to mp3ff compress video.mp4 to 10mbff trim video.mp4 from 0:30 to 1:00ff resize video.mp4 to 1280x720ff speed up video.mp4 by 2x
Liste des opérations prises en charge
- Conversion (Convert) : changement de format (
mp4 → gif,mp4 → mp3) - Compression (Compress) : définition d’une limite de taille de fichier (
10mb, etc.) - Découpage (Trim) : extraction d’un segment précis (
from 0:30 to 1:00) - Extraction audio (Extract audio) : séparation de l’audio seul depuis une vidéo
- Redimensionnement (Resize/Scale) : changement de résolution (
1280x720,720p) - Réglage de vitesse (Speed up / Slow down) : modification de la vitesse de lecture (
2x) - Inversion (Reverse), Muet (Mute), Rotation (Rotate), Retournement (Flip), Extraction de miniature (Thumbnail), Fusion (Merge), Niveaux de gris (Grayscale), Réduction du bruit (Denoise), Stabilisation vidéo (Stabilize), etc.
Prévisualisation de commande et sortie
- Avec l’option
--dry-run, il est possible d’afficher uniquement la commande ffmpeg sans l’exécuter- Exemple :
ff convert video.mp4 to gif --dry-run → ffmpeg -i video.mp4 -vf fps=15,scale=480:-1:flags=lanczos -loop 0 -y video_output.gif
- Exemple :
- Le fichier résultant est enregistré dans le même dossier que l’original avec le suffixe
_output(video_output.gif)
Fonctionnement interne
- Le Parser analyse la phrase saisie pour en extraire l’action, le fichier et les options (taille, etc.)
- Le Builder mappe ensuite ces informations vers une commande ffmpeg
- ffmpeg exécute la commande réelle
- L’ensemble du processus fonctionne hors ligne, sur la base d’un appariement de motifs, sans IA ni appel d’API
Installation et environnement
- Node.js 16 ou plus requis
- ffmpeg doit être installé dans le PATH du système
- macOS:
brew install ffmpeg - Ubuntu/Debian:
sudo apt install ffmpeg - Windows:
choco install ffmpeg
- macOS:
- Publié sous licence MIT, avec les Pull Requests bienvenues
Résumé
- ezff est un outil CLI simple qui supprime la difficulté d’apprentissage des commandes ffmpeg
- Il permet d’automatiser le montage vidéo avec une simple saisie en anglais courant
- Avec son fonctionnement hors ligne, sa rapidité d’exécution et ses nombreuses fonctionnalités, c’est un outil utile aussi bien pour les développeurs que pour les débutants en montage vidéo
1 commentaires
Commentaires Hacker News
C’est étonnant de voir à quel point les gens essaient d’éviter de mémoriser les bases de ffmpeg
En réalité, ffmpeg n’est pas si difficile, et le manuel explique bien les concepts essentiels
Bien sûr, il y a des pièges, comme le fait que la configuration par défaut provoque un réencodage ou ne conserve qu’un seul flux, mais il suffit généralement de se souvenir de
-c copyCacher ces « pièges » peut au contraire créer des problèmes plus graves. Par exemple, « ff convert video.mkv to mp4 » effectue un réencodage complet alors qu’un simple remux aurait suffi
« ffmpeg extract audio from video.mp4 » réencode aussi systématiquement en mp3, ce qui dégrade la qualité
Le multimédia est par nature un domaine complexe, et masquer cette complexité risque d’enseigner de mauvais concepts aux utilisateurs
Je pense qu’au lieu d’un wrapper simplifié, il vaut mieux former les utilisateurs avec une bonne antisèche
Ça me rappelle les débats du type « pourquoi les pauvres ne trouvent-ils pas simplement un bon emploi ? »
Cela dit, je comprends que ton intention soit de motiver
Ce que je veux, c’est un script interactif : il demande ce que je veux faire, génère la commande adaptée et explique le rôle de chaque argument
Exemple de liste d’options
Les problèmes que tu mentionnes pourraient probablement être traités via des rapports de bugs ou des propositions de fonctionnalités
Le fait de masquer les réglages de qualité peut aussi partir de l’idée que l’utilisateur n’a pas besoin de les connaître
Éviter le réencodage lors d’un simple changement de conteneur pourrait se gérer avec une table de correspondance
J’ai moi-même ressenti l’absence de ce type de mappage récemment en extrayant de l’audio et en ajoutant des miniatures
Quand je convertis une vidéo en gif, j’utilise toujours le filtre palettegen
Avec une commande d’exemple, je me réfère aussi à ce billet de blog d’il y a 10 ans
Sur un site web, remplacer un gif animé par un mp4 donne un fichier plus léger, plus fluide et avec des couleurs plus fidèles
Dans ce cas, ffmpeg pourrait atteindre le niveau de gifski
À l’époque, c’était ce qui permettait à gifski d’obtenir une meilleure qualité à taille de fichier égale
J’aime bien cette approche. J’aimerais qu’il existe un OS qui rende toute la CLI Linux plus humaine
Au lieu de commandes disparates comme
taroudd, j’imagine une CLI cohérente basée sur le langage naturelPar exemple :
Ce serait bien d’avoir l’autocomplétion et la prise en charge de différentes formulations. Pas besoin d’aller jusqu’aux LLM
On se retrouve avec des situations du genre « pas ce disque dur-là, l’autre ! » ou « supprimer, d’accord, mais le supprimer complètement ? »
Moi, j’aime que Linux conserve ses caractéristiques techniques telles quelles
Par exemple : À l’origine, c’était un wrapper pour ffmpeg, mais il a évolué en assistant CLI généraliste
La seule utilité des chatbots IA, c’est d’écrire des commandes ffmpeg
On affine la commande nécessaire par conversation, puis on sauvegarde les usages fréquents dans des fichiers
.commandLe problème, c’est d’avoir cru qu’on pouvait fabriquer de « l’intelligence » avec Wikipédia et quelques jeux de données
À condition d’avoir une interface de type tuteur qui montre le résultat, laisse l’utilisateur vérifier et apprendre
Un wrapper simple pour ffmpeg suffit à couvrir 90 % des besoins
Impossible d’accéder au dépôt GitHub ezff
Il vaudrait mieux utiliser un LLM pour proposer les options, puis les ajuster
En revanche, à cause d’un conflit de nom de package, il vaudrait mieux choisir un autre nom
« ezff » renvoie à une bibliothèque Python, et « ez-ffmpeg » à une bibliothèque Rust
Les LLM constituent une excellente interface pour ffmpeg
Il faut parfois 2 ou 3 ajustements pour des problèmes comme la synchro des sous-titres, mais ils permettent de générer rapidement des commandes complexes
Je me demande ce que signifie l’explication « 20 motifs courants couvrent 90 % des cas »
J’aimerais savoir si ça vient de l’IA ou si c’est l’auteur qui le dit directement
npm ? Vu les incidents de sécurité qui éclatent toutes les semaines, je n’ai pas envie de faire entrer ce chaos dans mon environnement de développement
Le changement de paradigme qu’apportera l’IA, au final, ce sera de parler à l’ordinateur en langage naturel
Des commandes comme « fais-moi un gif de la scène de cuisine dans ce film » deviendront une réalité
Le paradigme actuel basé sur les commandes est voué à disparaître bientôt
Il n’y a pas lieu de dénigrer ce type d’initiative