FFMPEG et MP3 avec Debian
Après plusieurs tests concluants sur Ubuntu, j'ai voulu reproduire la même chose sur mon serveur sous Debian. Le principe est de transformer (encoder) un fichier au format MPEG-4 / MP3 (.avi) en fichier vidéo flash (.flv).
Pour cela, j'utilise donc ffmpeg, seulement un petit hic, mp3 et debian ne font pas bons ménage, ce n'est pas nouveau.
Pour résoudre ce petit problème, j'ai installé ffmpeg à partir des sources (s'assurer que les sources sont bien disponibles dans les dépots).
Pour pouvoir utiliser les sources, il faut au préalable installer le paquet dpkg-dev.
apt-get install dpkg-dev
Puis télecharger les sources de ffmpeg et construire leurs dépendances
apt-get source ffmpeg apt-get build-dep ffmpeg
Puis ce placer dans le repertoire de ffmpeg et éditer le fichier debian/rules de manière à ajouter l'option --enable-mp3lame à la suite des options existantes.
cd ffmpegcvs-20070329 nano debian/rules
Ajout de l'option (debian/rules) :
(...) ./configure --prefix=/usr --libdir=\$${prefix}/lib --shlibdir=\$${pref$ --incdir=\$${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame$ --enable-gpl --enable-libfaad --mandir=\$${prefix}/share/man \ --enable-libvorbis --enable-pthreads --enable-libfaac --enable-xvid \ --enable-libdts --enable-amr_nb --enable-amr_wb --enable-pp \ --enable-libogg --enable-libgsm --enable-x264 --enable-liba52 \ --enable-libtheora --extra-cflags="$(CFLAGS)" --cc="$(CC)" --enable-sws$ --enable-mp3lame (...)
Pour que ffmpeg utilise le support du mp3, il nous reste plus qu'à compiler !
dpkg-buildpackage cd .. dpkg -i *.deb
La patience est de rigueur, la compilation peut prendre un certain temps :p.
Une fois la compilation terminée, il est désormais possible d'utiliser ffmpeg pour convertir notre vidéo. Pour cela, il est important de préciser l'encodage audio voulu et le bitrate vidéo pour éviter de déteriorer la qualité de l'image.
ffmpeg -i mon_fichier.avi -y -f flv -b 1024k -ar 44100 -ab 64 -ac 1 -acodec mp3 mon_fichier.flv
Petite explication des options utilisées ici :
- -i = input file
- -y = overwrite output data
- -f = force format
- -ar = audio sampling rate (hz)
- -ab = audio bitrate
- -ac = audio number channel
- -acodec = force audio codec
- -b = video bitrate (1024kb/s me permet d'avoir une bonne qualité en comparaison de ce que l'on peut trouver en divx)
L'encodage fonctionne maitenant et la qualité est plutôt bonne pour du flash !