FFmpeg étend le traitement des formats récents, du HDR et de plusieurs chaînes d’accélération matérielle. Les logiciels tiers doivent néanmoins intégrer les nouvelles bibliothèques avant de rendre ces fonctions accessibles à leurs utilisateurs. © Clubic

Pourquoi utiliser FFmpeg ?

Convertir et examiner des fichiers multimédias

La commande ffmpeg lit un ou plusieurs fichiers, traite leurs pistes, puis écrit le résultat dans le format de sortie choisi. Vous pouvez convertir une vidéo, extraire son audio, modifier son codec, régler son débit ou produire plusieurs fichiers depuis une même source. Dans la documentation, input désigne l’entrée et output la sortie ; leur chemin est indiqué directement dans la commande.

Un conteneur peut réunir des pistes vidéo, audio, de sous-titres ou de données. Les options de mappage servent à sélectionner celles qui seront conservées. FFmpeg peut aussi copier un flux sans le décoder ni relancer son encodage. Cette méthode évite une nouvelle compression lorsque le codec reste compatible avec le conteneur de destination.

L’outil ffprobe complète ce travail en analysant un fichier avant sa conversion. Il identifie le conteneur, les pistes, leur durée, leurs propriétés techniques et les métadonnées détectées. Les résultats peuvent s’afficher dans le terminal ou être produits en JSON, XML, CSV, INI et texte structuré pour alimenter un script.

Appliquer des filtres et traiter des animations

Les filtres modifient l’image, le son, les sous-titres ou certaines métadonnées. Vous pouvez découper des vidéos, recadrer une image, changer sa définition, la retourner ou superposer plusieurs sources. Les opérations s’enchaînent dans un graphe : la sortie d’une étape devient l’entrée de la suivante jusqu’au fichier final.

FFmpeg sait également décoder les images WebP animées et séparer leurs différentes images. Cette prise en charge évite de limiter le traitement à la première vue de l’animation. Des filtres avancés peuvent aussi exécuter des modèles ONNX pour certaines tâches, à condition que la compilation utilisée comprenne les composants nécessaires.

Le choix du codec et du débit agit sur la taille du fichier et sur la qualité visée. FFmpeg ne fournit toutefois pas de timeline visuelle : chaque transformation doit être décrite avec une syntaxe précise, et l’ordre des options influence le traitement appliqué à l’input ou à l’output concerné.

Gérer le HDR et l’accélération matérielle

FFmpeg traite plusieurs métadonnées liées au HDR et peut séparer les éléments d’un flux Dolby Vision Profile 7. Dans certaines configurations, il distingue la couche vidéo principale, la couche d’amélioration et les métadonnées associées, puis préserve leur signalisation lors d’un changement de conteneur compatible.

Ces opérations restent soumises au format source, au conteneur de sortie et aux composants présents dans l’exécutable. Une conversion Dolby Vision ne garantit donc pas automatiquement la conservation de toutes les couches. Le comportement doit être vérifié pour chaque commande et chaque fichier.

Plusieurs traitements peuvent utiliser le GPU, notamment avec Vulkan, CUDA, VideoToolbox ou AMD AMF. Les capacités disponibles dépendent du matériel, des pilotes et de la compilation. Certains chemins de redimensionnement et de conversion de pixels restent expérimentaux et ne remplacent pas systématiquement le fonctionnement stable employé par défaut.

Capturer et diffuser des flux réseau

FFmpeg peut recevoir un flux depuis un périphérique de capture, un tube logiciel, un fichier local ou une source réseau. Il peut ensuite l’encoder, l’enregistrer ou le transmettre. Une url peut remplacer le chemin d’un fichier lorsque la source ou la sortie se trouve sur un serveur distant.

Plusieurs protocoles sont pris en charge pour lire ou diffuser des contenus, mais certains réclament une bibliothèque externe, une authentification ou des options particulières. Les connexions TLS vérifient par défaut les certificats des serveurs. Un certificat invalide ou mal configuré peut donc interrompre un ancien script qui fonctionnait auparavant sans ce contrôle.

Servir de moteur à d’autres logiciels

FFmpeg comprend des bibliothèques consacrées au décodage, à l’encodage, aux conteneurs, aux filtres et aux périphériques. Les développeurs peuvent les intégrer dans leurs applications pour lire, convertir ou analyser des contenus sans exposer directement le terminal à l’utilisateur.

Une évolution de ces bibliothèques ne devient cependant pas immédiatement disponible dans chaque logiciel tiers. Un changement majeur de leur interface binaire peut obliger les éditeurs à adapter ou reconstruire leurs composants. Les fonctions accessibles dépendent donc de la version et de la configuration retenues par chaque application.

FFmpeg exécute les conversions depuis le terminal en indiquant précisément le fichier d’entrée, le format de sortie et les options d’encodage. Les codecs et accélérations disponibles dépendent toutefois des composants activés dans chaque compilation. © FFmpeg

FFmpeg : toutes les réponses à vos questions

Avec quel OS est compatible FFmpeg ?

FFmpeg fonctionne sous Windows, macOS, Linux, les systèmes BSD et Solaris, avec plusieurs architectures matérielles. Les exécutables ne sont pas tous compilés avec les mêmes codecs, protocoles, périphériques ou systèmes d’accélération.

Faut-il créer un compte pour utiliser FFmpeg ?

Aucun compte FFmpeg n’est nécessaire pour traiter localement des fichiers depuis le terminal. Une connexion et des identifiants peuvent toutefois être requis lorsqu’une commande accède à une url ou à un service distant protégé.

FFmpeg est-il gratuit ou payant ?

FFmpeg est un projet libre utilisable gratuitement. Sa configuration de base relève de la licence LGPL 2.1 ou ultérieure, tandis que certains composants optionnels placent la compilation concernée sous GPL 2 ou ultérieure.

Une mise à jour peut-elle casser un script ?

Oui, certaines options anciennes peuvent être supprimées et les contrôles réseau peuvent évoluer. Une commande existante doit donc être vérifiée lors d’un changement majeur de version.