{{tag>tutoriel}} ---- ====== 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 : [[http://blogger.rukker.org/2007/01/29/enable-mp3-and-amr-support-in-ffmpeg-ubuntu-edgy-eft/|enable mp3 and amr support in ffmpeg (Ubuntu 6.10)]]// Une aide complémentaire : [[https://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 ==== [[:tutoriel:comment_installer_un_paquet|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**. [[apt://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|{{ apt.png |Tout installer en 1 clic}}]] Il parait que sur AMD64, il faut [[:tutoriel:comment_installer_un_paquet|installer aussi le paquet]] **[[apt://libsdl1.2-dev|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 **[[:tutoriel: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 Attention, si vous utilisiez Ubuntu Ibex (8.10) ou inférieur, il vous faudra impérativement installer les versions >= 0.65 de libx264 et de libx264-dev, si vous utilisez la source svn pour ffmpeg. Le premier paquet étant une dépendance de l'autre. Les choses étant bien faites, le paquet libx264-65 est disponible pour Ubuntu 9.4 (Jaunty). Ne nous privons pas de l'utiliser: on les trouve ici [[https://packages.ubuntu.com/fr/jaunty/i386/libx264-65]] et là [[https://packages.ubuntu.com/fr/jaunty/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 Petite surprise, lors de mes essais avec la version 7.0.0.2, l'installation à placé la librairie libamrnb dans /usr./lib et non /usr/lib . En utilisant vos droits d'administrateur, il vous faudra déplacer le contenu de /usr./ vers /usr/ . Ensuite il faudra mettre à jour le cache des librairies en utilisant 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 [[https://ubuntuforums.org/archive/index.php/t-491885.html]]// ===== Utilisation ===== ==== Convertir un avi en flv ==== ffmpeg -i movie.avi -acodec mp3 -ar 11025 movie.flv ==== Convertir un 3gp en mpeg4 avi ==== ffmpeg -i movie.3gp -vcodec mpeg4 -acodec mp3 movie.avi ---- //Contributeurs principaux : [[:utilisateurs:adam0509]], [[:utilisateurs:ludomatic]].//