Notes de travail : installer ffmpeg depuis les sources sur MacOSX Snow Leopard

Publié le 15 mai 2011 par Romainbochet

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.