FFMpeg sur le serveur
Pour utiliser ffmpeg sur un serveur dans la version la plus à jour possible et avec le plus de fonctionnalités possibles, le mieux est de compiler l'application à partir des sources.
Il faut les sources du projet FFMpeg mais également les sources de plusieurs de ses dépendances. Je veux ici intégrer à ffmpeg la possibilité d'utiliser ce qui suit :
- LibAss : pour gérer et rendre des sous-titres des vidéos.
- FDK_AAC : pour encoder des fichiers audio avec un très bon taux de compression et qui soient compatibles avec des terminaux mobiles.
- Lame : pour décode/encoder nativement du mp3.
- Opus : un codec audio intéressant, spécialisé dans la voix.
- libtheora : un codec video utilisé par certaines vidéos que j'ai besoin de transcoder.
- libx264 : codec vidéo pouvant être utilisé par le container MP4 et qui est géré nativement sur les terminaux mobiles iOS.
- libvpx : un très bon codec vidéo de chez Google.
Avant de commencer il faut s'assurer que les paquets suivants ont été installés sur la machine (oui je suis sur une Debian...) :
- autoconf-archive
- pkg-config
- yasm
- libfreetype6-dev
- libfribidi-dev
- libfontconfig-dev
Ces briques logicielles n'ont pas besoin d'être installées à partir des sources (à part Freetype peut-être), il s'agit de projets très matures.
Pour obtenir un ffmpeg qui gère tout cela, il faut donc compiler les dépendances précédentes dans le bon ordre :
- LibAss : ./autogen.sh, configure, make (2 minutes), make install
- FDK_AAC, autogen.sh, configure, make (6 minutes), make install.
- Lame : configure, make (2 minutes), make install
- Opus : configure --enable-intrinsics, make (4 minutes), make install
- libogg : configure, make, make install
- libvorbis : ./autogen.sh (qui appelle configure), make (2 minutes), make install
- libtheora : ./autogen.sh, make (2 minutes), make install
- libx264 : configure, make (5 minutes), make install
- libvpx : configure, make (20 minutes), make install. Il y a peut-être des tests qui ont été compilés et qui augmente le temps du "make". On doit pouvoir enlever ça...
Et finalement, on peut passer à l'objectif principal, FFmpeg :
- ./configure --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
- make
- make install
