Ce tutoriel décrit la procédure pour compiler, sous Ubuntu Lucid 10.04, la version de FFmpeg la plus récente . La version de FFmpeg utilisée dans ce tuto est 0.6-x et les options les plus utiles sont sélectionnées pour la compilation.
Ubuntu et Debian ont choisi la branche “avconv”, dérivée (plus ou moins conflictuelle) de ffmpeg, mais qui n'assure ni la compatibilité des librairies partagées ni la compatibilité des arguments de la ligne de commande (!). Il est donc dangereux de remplacer brutalement les librairies système par la version officielle ffmpeg. Une solution intéressante (que j'utilise sous precise 12.04, avec ffmpeg version 2.1) est de compiler une version statique de ffmpeg qui n'interfère en rien avec les librairies installées au niveau système. Cette version est alors installée dans un répertoire utilisateur (~/bin, par exemple et par défaut). Cela permet d'utiliser les dernières fonctionnalités de ffmpeg (par exemple la concaténation de fichiers vidéo ); cela est parfaitement utilisable par l'interface graphique winff, par exemple. Pour ce faire suivre la procédure décrite en https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide qui fournit un exécutable sans rien modifier au niveau des librairies partagées.
La méthode est applicable quelle que soit la version d'Ubuntu. L'ensemble des binaires créés (ffmpeg, ffprobe, yasm, x264, etc.) représente un volume de moins de 75 Moctets. Pour le confort d'utilisation, vérifier que le répertoire où sont stockés ces exécutables (par défaut ~/bin) est bien rajouté au PATH.
Tout d'abord, installez apt://ffmpeg, depuis les dépôts officiels afin de récupérer automatiquement une partie des dépendances.
A présent, supprimez cette installation de FFmpeg
, ainsi que le codec x264 et Lame
que nous allons remplacer par des versions plus récentes.
Lame
sont des dépendences pour de nombreux programmes comme DVD::Rip, OGMRip, kino etc…
La commande ci-dessous entraînera égallement la désinstallation de ces programmes s'il sont installés.
Il suffira de les réinstaller à l'aide de Synaptic
Lame
installée ci-dessous est requise. Sinon FFmpeg ne pourra être compilé.
sudo apt-get remove ffmpeg x264 libx264-dev lame libmp3lame-dev
Installer les outils nécessaires à la compilation de FFmpeg
: apt://yasm , apt://git - et apt://checkinstall
Pour être sûr de commencer dans ~/HOME
cd
Télécharger et décompresser :
wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz && tar -zxvf lame-3.99.5.tar.gz && rm lame-3.99.5.tar.gz
Déplacez le dossier téléchargé dans /usr/local/src.
sudo mv ~/lame-3.99.5/ /usr/local/src/
Puis compiler :
cd /usr/local/src/lame-3.99.5
./configure
make
sudo checkinstall
checkinstall
vous proposera de modifier les informations du paquet. Veillez à ce que la ligne 3 (N° de version) soit renseignée (un chiffre quelconque est requis). Si ce n'est pas le cas, faites-le manuellement; sans quoi la création du paquet échouera. Ceci est valable pour toutes les compilations suivantes.
checkinstall
peut retourner des erreurs d'inexistence de dossiers ce qui aura pour conséquence d'annulation la création du paquet. Pour les créer manuellement taper :
sudo mkdir -p /usr/local/share/doc/lame/html /usr/local/share/man/man1 /usr/local/include
Revenir dans ~/HOME
cd
Téléchargez la dernière version du codec x264
git clone git://git.videolan.org/x264.git
Déplacez le dossier téléchargé dans /usr/local/src.
sudo mv ~/x264/ /usr/local/src/
Puis compiler :
cd /usr/local/src/x264
./configure --enable-shared
make
sudo checkinstall
sudo mkdir -p /usr/local/lib/pkgconfig
cd wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar xzvf yasm-1.2.0.tar.gz sudo mv ~/yasm-1.2.0/ /usr/local/src/ cd /usr/local/src/yasm-1.2.0 ./configure make sudo checkinstall
libvpx
n'est pas disponible dans les dépôts, il faut l'installer manuellement
Revenir dans ~/HOME
cd
Téléchargez la dernière version du codec
git clone https://chromium.googlesource.com/webm/libvpx
Déplacez le dossier téléchargé dans /usr/local/src.
sudo mv ~/libvpx/ /usr/local/src/
Puis compiler :
cd /usr/local/src/libvpx
./configure
make
sudo checkinstall
On installe le reste des dépendances nécessaires :
sudo apt-get install build-essential libvorbis-dev libxvidcore-dev libfaac-dev libfaad2 libtheora-dev libdirac-dev libvdpau-dev libopenjpeg-dev libopencore-amrwb-dev libopencore-amrnb-dev libgsm1-dev libschroedinger-dev libspeex-dev libdc1394-22-dev libsdl1.2-dev libx11-dev libxfixes-dev
Revenir dans ~/HOME
cd
Téléchargez la dernière version de FFmpeg
avec Git ( ou sur le site ffmpeg.org. )
git clone git://git.videolan.org/ffmpeg.git
Déplacez le dossier téléchargé dans /usr/local/src.
sudo mv ~/ffmpeg/ /usr/local/src/
Puis configurer :
cd /usr/local/src/ffmpeg
./configure --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-gpl --enable-libfaac --enable-libtheora --enable-zlib --disable-shared --enable-libx264 --enable-libdirac --enable-nonfree --enable-version3 --enable-libschroedinger --enable-avfilter --enable-libspeex --enable-libopenjpeg --enable-libgsm --enable-postproc --enable-pthreads --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-ffplay --enable-pthreads --prefix=/usr/local --enable-x11grab --enable-runtime-cpudetect --enable-bzlib --enable-libdc1394 --enable-libvpx
Effacer les résidus d'éventuelles anciennes installations :
sudo make clean
Compiler:
make
sudo checkinstall
checkinstall
vous proposera de modifier les informations du paquet. Veillez à ce que la ligne 3 (N° de version) soit renseignée (un chiffre quelconque est requis) à ce jour la version git est 0.6-1-1. Si ce n'est pas le cas, faites-le manuellement; sans quoi la création du paquet échouera.
ffmpeg
Si l'installation s'est correctement déroulée, la commande vous renverra :
~$ ffmpeg FFmpeg version UNKNOWN, Copyright (c) 2000-2010 the FFmpeg developers built on Sep 3 2010 15:21:36 with gcc 4.4.3 configuration: --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-gpl --enable-libfaac --enable-libtheora --enable-zlib --enable-shared --enable-libx264 --enable-libdirac --enable-nonfree --enable-version3 --enable-libschroedinger --enable-avfilter --enable-libspeex --enable-libopenjpeg --enable-libgsm --enable-postproc --enable-pthreads --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-ffplay --enable-pthreads --prefix=/usr/local --enable-x11grab --enable-runtime-cpudetect --enable-bzlib --enable-libdc1394 --enable-libvpx libavutil 50.24. 0 / 50.24. 0 libavcore 0. 6. 0 / 0. 6. 0 libavcodec 52.87. 0 / 52.87. 0 libavformat 52.78. 3 / 52.78. 3 libavdevice 52. 2. 1 / 52. 2. 1 libavfilter 1.38. 1 / 1.38. 1 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
Dans synaptic, recherchez FFmpeg , lame , x264, libvpx sélectionnez-les, puis, dans le menu Paquet
, sélectionnez Bloquer la version
.
Chacun des paquets installés ci-dessus peut être supprimé à l'aide de synaptic
Votre compilation de FFmpeg est prête à être utilisée.