Convertir les vidéos d'un téléphone mobile (3GP ou MP4) en AVI
Ce petit tutoriel décrit comment avec FFMPEG, l'on peut convertir les vidéos de téléphones mobiles ainsi que les fichiers flv (format Adobe Flash Video) dans n'importe quels autres formats vidéos. Le codec utilisé pour l'encodage du son de ces vidéos est l'AMR. Seulement, l'AMR est propriétaire et il va donc nous falloir l'ajouter !
Avant de commencer
Premièrement, je supposerai que vous avez déjà les compilateurs C, ainsi que les paquets de développement standard installés.
Aussi, soyez sûr d'avoir activé le dépôt “multiverse” dans votre /etc/apt/sources.list et exécutez la commande suivante :
apt-get update
Activer le support du MP3 et de l'AMR dans FFMPEG
Source : enable mp3 and amr support in ffmpeg (Ubuntu 6.10)
Une aide complémentaire : http://ubuntuforums.org/showthread.php?t=1071262
N.B. : si les noms des paquets ont changé entre les différentes versions d'Ubuntu, apt vous fournira les noms des paquets qui les remplacent.
On se met en root pour effectuer les opérations :
sudo -i
Installation des librairies de développements nécessaires
Installez les paquets quilt dpkg-dev libimlib2-dev texi2html libmp3lame-dev libfaad-dev libmp4v2-dev libfaac-dev libxvidcore4-dev debhelper libogg-dev libvorbis-dev liba52-dev libdts-dev libsdl1.2debian-all libraw1394-dev libdc1394-13-dev libtheora-dev libgsm1-dev libx264-dev x264.
Il parait que sur AMD64, il faut installer aussi le paquet libsdl1.2-dev.
Changez de répertoire pour votre répertoire d'installation
On utilise toujours le répertoire /usr/local/src pour cela :
cd /usr/local/src
Récupérez les sources du paquet ffmpeg
apt-get source ffmpeg
Récupérez le patch amr
wget http://wclhfl.dyndns.org/pub/ffmpeg_enable_amr.patch.bz2
Allez dans le répertoire sources de ffmpeg et appliquez le patch
cd ffmpeg-0.cvs20060823 bzcat ../ffmpeg_enable_amr.patch.bz2 | sudo patch -p1
Construisez le paquet complet avec l'option “risky”
DEB_BUILD_OPTIONS=”risky” sudo dpkg-buildpackage
Retournez dans « /usr/local/src »
cd ..
installez le paquet ffmpeg
dpkg -i ffmpeg_0.cvs20060823-3.1ubuntu1_i386.deb libavcodec0d_0.cvs20060823-3.1ubuntu1_i386.deb libavformat0d_0.cvs20060823-3.1ubuntu1_i386.deb libpostproc0d_0.cvs20060823-3.1ubuntu1_i386.deb
Ou bien, installez le paquet ffmpeg (AMD64)
dpkg -i ffmpeg_0.cvs20060823-3.1ubuntu4_amd64.deb libavcodec0d_0.cvs20060823-3.1ubuntu4_amd64.deb libavformat0d_0.cvs20060823-3.1ubuntu4_amd64.deb libpostproc0d_0.cvs20060823-3.1ubuntu4_amd64.deb
Nous avons maintenant ffmpeg avec le support du mp3 et de l'amr, maintenant, nous devons prévenir apt de ne pas mettre à jour notre paquet fraîchement crée par un nouveau sans le support mp3 et amr. Cela s'appelle le “pinning”.
Créez le fichier suivant avec votre éditeur favoris ( vi !! )
vi /etc/apt/preferences
Ajoutez-y les lignes suivantes :
Package: ffmpeg Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001 Package: libavcodec0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001 Package: libavformat0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001 Package: libpostproc0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001
Ou bien sur (AMD64) :
Package: ffmpeg Pin: version 0.cvs20060823-3.1ubuntu4 Pin-Priority: 1001 Package: libavcodec0d Pin: version 0.cvs20060823-3.1ubuntu4 Pin-Priority: 1001 Package: libavformat0d Pin: version 0.cvs20060823-3.1ubuntu4 Pin-Priority: 1001 Package: libpostproc0d Pin: version 0.cvs20060823-3.1ubuntu4 Pin-Priority: 1001
Maintenant, nous pouvons convertir toutes sortes de fichiers vidéos !
Méthode alternative
Installation des composants nécessaires
Pour les utilisateurs qui n'ont pas d'expérience dans la compilation je recommande la lecture de cet article compilation. Il est possible qu'il vous faille ajouter des paquets de composants supplémentaires au cour des étapes pour permettre la compilation. Ces paquets reconnaissable au suffixe "-dev" dans le nom de fichier. En général lorsqu'un script "./configure" échoue à cause d'une librairie manquante, cherchez à installer ce paquet "-dev" via synaptic. En résumé, la liste des paquets proposés ci-dessous peu ne pas être complète.
La première chose à faire est de se mettre dans un répertoire de travail favori.
sudo apt-get install build-essential subversion nasm zlib1g-dev sudo apt-get install libx264-dev
Installer AMR
On peut trouver la dernière version de la librairie AMR à cette adresse: http://www.penguin.cz/~utx/amr
AMR-NB
téléchargement et extraction (pour la version 7.0.0.2)
wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2 tar -jxvf amrnb-* cd amrnb-*
compilation et installation
./configure --prefix=/usr make sudo make install
sudo ldconfig -v
AMR-WB
téléchargement et extraction (pour la version 7.0.0.3)
wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2 tar -jxvf amrwb-* cd amrwb-*
./configure --prefix=/usr make sudo make install
Verification
On peut vérifier la bonne installation des librairies amr avec les commandes suivantes
sudo ldconfig -p | grep libamr
Le résultat est quelque chose similaire à
libamrwb.so.3 (libc6) => /usr/lib/libamrwb.so.3 libamrwb.so (libc6) => /usr/lib/libamrwb.so libamrnb.so.3 (libc6) => /usr/lib/libamrnb.so.3 libamrnb.so (libc6) => /usr/lib/libamrnb.so
Compiler ffmpeg à la main
Nous allons récuperer les codes sources de ffmpeg. Pour varier de la solution décrite sur la page de ffmpeg, je vous propose de récupérer une version dite de développement, moins stable, plus à jour. Afin de vous simplifier la gestion des dépendances, je vous propose de commencer par installer la version "du dépot" en cliquant sur le lien suivant apt://ffmpeg ou en utilisant la ligne de commande suivante:
apt-get install ffmpeg
récupération du code source
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-svn
cd ffmpeg-svn
La configuration de la compilation, si vous n'avez pas lu ffmpeg, il serait peut-être temps vous demander quels drapeaux utiliser pour avoir toutes les fonctionnalités que vous voulez. Pour le sujet qui nous intéresse, il suffit d'avoir:
./configure --enable-gpl --enable-pthreads --enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-nonfree
la compilation proprement dite, vous pouvez allez boire un café.
make
l'installation du ffmpeg compilé
sudo make install
C'est tout. Vous pouvez reprendre la méthode de pinning de l'autre méthode pour que synaptic n'écrase pas votre ffmpeg tout neuf.
inspiré de http://ubuntuforums.org/archive/index.php/t-491885.html
Utilisation
Convertir un avi en flv
ffmpeg -i movie.avi -acodec mp3 -ar 11025 movie.flv