mercredi 20 octobre 2010
Ffmpeg 0.6 AAC-HE-V2 : Repository personnel pour Debian Lenny
Par david techer, mercredi 20 octobre 2010 à 02:16 :: Multiméda sous GNU/Linux

1. Motivations
Je mets à disposition mon paquet .deb personnel de ffmpeg sur mon ancien site perso http://techer.pascal.free.fr en utilisant un petit référentiel (repository à la sauce Debian).J'ai recompilé la branche 0.6-aac-he-v2 en prenant en considération les points suivants
- Les binaires (ffmpeg, ffplay, ffserver et ffprovbe) sont compilés en mode statique. Exemple
# ldd /usr/local/bin/ffmpeg linux-gate.so.1 => (0xb7eff000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7eb4000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7dc1000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7da8000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7da4000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d99000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c4a000) /lib/ld-linux.so.2 (0xb7f00000)
- support WebM (libvpx) version 0.9.2
- support librtmp snapshot SVN de rtmpdump du 20101018
- x264 snapshot du 20101019
Voici deux screenshots de lecture pour ffplay

Fig 1. Lecteur ffplay: lecture d'un fichier encodé en WebM "Resident Evil 3D"
Source: http://erunways.com/html5/WebM_VP8_video/html5_Video_VP8.webm

Fig 2. Lecteur ffplay:Lecture d'un flux rtmp en provenance du site arte.tv
1. Installation
1.a Ajout du référentiel
Mettre dans /etc/apt/source.list.decho "deb http://techer.pascal.free.fr/debian binary/" > /etc/apt/sources.list.d/ffmpeg_0.6_aac-he-ve.list
-
1.b Installation
On met à jour la liste des référentielsapt-get update
On peut maintenant installerapt-get install ffmpeg-0.6-aac-he-v2
1.c Avoir le son avec ffplay (optionnel)
Il faudra installer le paquet
oss-compat par apt-get install
apt-get install oss-compat
1.d Désintallation du paquet
apt-get remove ffmpeg-0.6-aac-he-v2
1.e Infos: dépendances
Exemple de dépendance pour ffmpeg# ldd /usr/local/bin/ffmpeg linux-gate.so.1 => (0xb7eff000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7eb4000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7dc1000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7da8000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7da4000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d99000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c4a000) /lib/ld-linux.so.2 (0xb7f00000)
2. Informations sur la génération du paquet
Il faut prendre en compte ces trois précédents billets que j'ai adapté pour les circonstances. On prendra bien sûr soin de ne pas prendre en considération la version de ffmpeg stipulée dans les billets. x264 est à rapatrier en utilisant git- http://www.davidgis.fr/blog/index.php?2010/05/16/703-compiler-ffmpeg-sous-lenny-en-mode-full-static
- http://www.davidgis.fr/blog/index.php?2010/06/23/713-ffmpeg-06
- http://www.davidgis.fr/blog/index.php?2010/10/19/753-ffmpegcompile-avec-librtmp-en-mode-static-sans-dependances-vis-a-vis-de-ssl
2.a Notes sur la compilation
On rapatrie la branche 0.6-aac-he-v2svn checkout svn://svn.ffmpeg.org/ffmpeg/branches/0.6-aac-he-v2/Ffmpeg a été compilé selon la satisfaction des dépendances suivantes
./configure --enable-libvpx --enable-libdirac --enable-libschroedinger \ --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libmp3lame \ --enable-libx264 --enable-libxvid --enable-libopencore-amrnb \ --enable-libopencore-amrwb --enable-version3 --enable-libfaac \ --enable-gpl --enable-nonfree --enable-pthreads --enable-libopenjpeg \ --enable-libdc1394 --enable-libnut --enable-runtime-cpudetect \ --enable-librtmp --enable-libfaad --enable-libgsmAprès avoir exécuter la commande précédente et avant de lancer la compilation, voici la ligne que j'ai modifié dans le fichier config.mak
EXTRALIBS= /usr/lib/libz.a /usr/lib/libbz2.a -pthread -lm -L/usr/local/lib -ldirac_encoder -ldirac_decoder -lm -lstdc++ -L/usr/local/lib -ldirac_encoder \ -ldirac_decoder -lm -lstdc++ -lfaac -lfaad -lgsm -lmp3lame -lm -lnut -lopencore-amrnb -lm -lopencore-amrwb -lm -lopenjpeg /usr/local/lib/librtmp.a /usr/lib/libz.a \ /usr/lib/libssl.a /usr/lib/libcrypto.a -L/usr/local/lib -lschroedinger-1.0 -lpthread -lm -lorc-0.4 -lspeex -ltheoraenc -ltheoradec -logg -lvorbisenc -lvorbis -logg -lvpx \ -lvpx -lx264 -lm -lxvidcore -ldc1394 -lraw1394 /usr/lib/libasound.a /usr/lib/libasound.a /usr/lib/libasound.a -ldl
2.b Génération du .deb à partir de checkinstall
Voici le script que j'ai utilisé# Fichier de descrition cat << EOF > description-pak FFMPEG 0.6 AAC-HE-V2 pour le reseau intranet davidgis.fr. Compile sous Lenny avec - a52dec 0.7.4 - dirac 1.0.2 - faac 1.28 - faad2 2.7 - lame 3.98.4 - libao 1.0.0 - libdc1394 2.1.2 - libogg 1.2.0 - libraw1394 2.0.5 - libtheora 1.1.1 - libvorbis 1.3.1 - libvpx v0.9.2 - nasm 2.08.01 - opencore amr0.1.2 - openjpeg_v1_3 - orc 0.4.4 - schroedinger 1.0.9 - SDL 1.2.14 - speex 1.2rc1 - x264 snapshot du 20101019 - xvidcore 1.2.1 - yasm 1.0.0 - librtmp snapshot du 20101018 (issu de rtmpdump) - libnut snapshot du 20101018 EOF # Generation du paquet checkinstall -D --pkgname "ffmpeg-0.6-aac-he-v2" --pkgversion "lenny1" -A i386 \ --pkgrelease 1 --pkglicense GPL --pkggroup multimedia \ --maintainer "Jean David TECHER david.techer@davidgis.fr" \ --provides "ffmpeg-0.6-aac-he-v2" --requires "zlib1g, oss-compat, libbz2-1.0"