Table des matières


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 : 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

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.

Tout installer en 1 clic

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
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 : adam0509, ludomatic.