ffmpeg : bibliothèque et applications pour la manipulation des flux audios et vidéos

Fiche PLUME
  • Création ou MAJ importante : 05/10/2011
  • Correction mineure : 17/10/2013
  • Auteur : Dirk Hoffmann - Centre de Physique des Particules de Marseille (CNRS, Université de la Méditerranée Aix-Marseille II)
  • Responsable thématique : Pascal Dayre (IRIT)
  • Relecteur 1 : Olivier Sébastien
  • Relecteur 2 : Anne Cheylus
Mots clés
Description
Fonctionnalités générales

Le paquet "ffmpeg" contient deux applications essentielles :

  • ffmpeg pour la manipulation de fichiers multimédia (son, vidéo ou combinés) et leur transformation ou extraction
  • ffplay pour l'affichage de fichiers ou médias (par exemple DVD) sur l'ordinateur.

Il contient également des bibliothèques qui sont utilisées par exemple dans "mencoder" (ou "mplayer").

Autres fonctionnalités

L'application et ses bibliothèques prennent en compte une multitude de formats : plus de 160 dans la version testée en octobre 2010. On y trouve des formats (tous ?) standards pour le multimédia (MPEG1/2, MP3, MPEG4, AVI, MOV, mais aussi VOB [DVD], ainsi que WAV, AU, AIFF), mais également des fonctionnalités plus exotiques de sous-titrage et des formats multi-canal audio.
Elle permet également de produire des captures d'écran X11 animées (pour tutorial ou démo).

Interopérabilité

Il inter-opère avec toutes les applications permettant de lire ou générer des fichiers multimedia selon les standards utilisés (MPEG, AVI, MOV, ... plus de 160 en total)

Contexte d'utilisation dans mon laboratoire/service

Au CPPM, transformation de séquences d'images en clip vidéo, captures animées d'écran, extraction d'images à partir d'un film ou clip vidéo

Limitations, difficultés, fonctionnalités importantes non couvertes

Il est intéressant de noter que souvent, mencoder/mplayer et ffmpeg/ffplay sont complémentaires. Il existe de rares cas, où un fichier n'est pas lisible ou n'est correctement traité par l'une des deux suites. Dans le même registre, vlc arrive à digérer des fichiers qu'aucun des deux ne traite raisonnablement, et vice-versa.
L'outil "qui fait tout" n'existe visiblement pas encore, alors que mencoder/mplayer utilise clairement quelques bibliothèques de ffmpeg.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Quasiment toutes les distribution Linux. Pour RedHat et dérivés, on passera par la distribution complémentaire rpmfusion ou similaire.

Plates-formes

Linux, Windows
Sources Linux devraient compiler sur Mac OS

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Site propre ffmpeg.org, soutenu par Google Summer of Code (9 étudiants en 2009) par exemple

Eléments de pérennité

Vu l'activité sur les listes de support et l'origine des contributions, il y a quelques dizaines d'instituts ou laboratoires de recherche dans le monde qui utilisent FFMPEG et contribuent régulièrement. Par extrapolation il doit y avoir des centaines d'utilisateurs "muets".

L'initiateur de FFMPEG, Fabrice Bellard, est un informaticien et mathématicien contemporain, proche du domaine de la recherche (record du monde en calcul de décimales de pi).

Voir aussi remarques sur "listes de support" plus loin. Les conséquences restent à observer de près !

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

6 mailing lists, visant le public de l'utilisateur au développeur
Deux canaux IRC sur freenode.net
Voir http://ffmpeg.org/contact.html
Malheureusement, la liste traditionnelle ffmpeg-users s'est arrêtée en mars 2011, suite à des querelles internes. J'ai retrouvé ses archives ici. Une nouvelle liste ffmepg-users existe depuis mars 2011. Les archives des deux listes contiennent de nombreux exemples d'utilisation concrèts et instructifs.

Documentation utilisateur

Manuels, HowTos, FAQ et exemples disponibles sur le site http://ffmpeg.org

Divers (astuces, actualités, sécurité)
  • Les fichiers produits par ce logiciel le sont sans garantie. Il est capable de convertir beaucoup de formats, souvent propriétaires. Or, en l'absence de spécifications publiques, il est impossible d'être sûr qu'aucun problème ne se présentera, comme par exemple des images figées par moment ou des décalages entre le son et l'image. Bien souvent, cela est lié au format du fichier source
  • De même, il est nécessaire de maîtriser les paramétrages spécifiques à certains formats : par exemple, l'absence de meta-données correctes dans un fichier FLV (Flash Video) empêchera un lecteur de se déplacer à l'intérieur d'un fichier. La solution la plus simple consiste à utiliser une interface comme WinFF, livrée avec des pré-réglages qui répondent à ce besoin
  • Il existe une extension PHP basée sur FFMPEG qui permet de travailler en ligne sur des fichiers vidéo : FFMPEG-PHP
  • L'usage d'une interface graphique avec des chaînes de traitement pré-installées facilite l'utilisation de ffmpeg pour les néophytes. Voir par exemple http://winff.org (également sous licence GPL) pour Windows et Linux, et ffmpegX pour Mac
Contributions

Rapports de bugs : http://ffmpeg.org/bugreports.html
Serveur GIT pour contributions : http://ffmpeg.org/download.html