Tout le monde a déjà utilisé un logiciel dérivé de ffmpeg dans sa vie. Cette librairie de traitement vidéo et audio est connue pour sa robustesse et sa vitesse d’exécution, ainsi que le fait qu'elle soit bien codée, ce qui permet de construire facilement de puissantes applications traitant des flux médias.
Ayant dans l'optique de faire une version customisée de ffmpeg, je dois d'abord commencer par le compiler depuis les sources sur mon mac. Voici quelques notes que j'ai prises durant l'installation.
Le seul prérequis est une installation de XCode (gcc 4.2.1 dans mon cas).
Allons-y !
Installation de lame
Mais qu'est ce que lame ? En deux mots, une librairie bien connue qui permet de gérer le mp3.
Téléchargez la dernière release de lame sur Sourceforge. La suite est une compilation des plus classiques :
MacBook-Romain:lame-3.98.4 rbochet$ ./configure MacBook-Romain:lame-3.98.4 rbochet$ make MacBook-Romain:lame-3.98.4 rbochet$ sudo make install
Les commandes sont assez rapides a exécuter.
MacBook-Romain:lame-3.98.4 rbochet$ lame -v LAME 64bits version 3.98.4 (http://www.mp3dev.org/)
Et c'est fait !
Le cas de FAAC/FAAD
Il s'agit des codecs pour le format AAC, largement utilisé par Apple. Malheureusement, leur installation est réputée être aussi agréable que la Vegemite pour les non initiés ; je vais donc m'en passer car je n'en aurais pas besoin dans mon projet.
Plus de détails sur un site qui les propose : Audiocoding.
Compilation de ffmpeg
Intéressé par la dernière version, j'ai choisi de télécharger directement depuis le principal déport Git du projet. Si vous voulez une release plus éprouvée, vous pouvez les trouver sur la page downloads.
MacBook-Romain:builds rbochet$ git clone git://git.videolan.org/ffmpeg.git
Pour ce qui est du configure, le choix des flags semble être un peu spécial (cf. mailing list)
MacBook-Romain:ffmpeg rbochet$ ./configure --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64 MacBook-Romain:ffmpeg rbochet$ make
Dans mon cas, je ne souhaite pas faire de make install
, car je n'ai pas tous les drivers, et si on veut installer ffmpeg, on peut passer par d'autres systèmes tels que Brew.
Et voilà, ffmpeg est maintenant compilé… Il n'y a plus qu'a modifier les sources pour faire ce que l'on en veut.
MacBook-Romain:ffmpeg rbochet$ ffmpeg -version FFmpeg version 0.6.2, Copyright (c) 2000-2010 the FFmpeg developers built on May 10 2011 14:52:34 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --disable-debug --prefix=/usr/local/Cellar/ffmpeg/0.6.2 --enable-shared --enable-pthreads --enable-nonfree --enable-gpl --disable-indev=jack --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libfaad libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0.11. 0 / 0.11. 0 FFmpeg 0.6.2 libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0.11. 0 / 0.11. 0
Bonus : ça vaut le coup de s'y pencher
Le projet ffmpeg utilise maintenant Git ; ce qui signifie que pour vos propres développements, vous pouvez facilement faire une branche et continuer de cette manière a bénéficier des mises à jour du dépot central.
git branch patch-moov git checkout patch-moov
Deuxième chose intéressante, le dossier de sources contient d'autres logiciels que ffmpeg qui ne sont pas compilés avec le make par défaut, notamment ceux qui sont dans le dossier tools/. Si vous voulez hacker ffmpeg, des exemples sympas se cachent dans ce dossier. Il est aussi a noter la présence du code source du logiciel ffplay.