Transformez vos vidéos au format WebM
Rappelons rapidement que WebM est le nouveau format libre et ouvert de référence pour la diffusion audio et vidéo sur le Web, basé notamment sur le codec vidéo VP8 récemment libéré par Google.
Je ne vais pas rentrer aujourd'hui dans le détail des options d'encodage (je ne m'y suis d'ailleurs pas encore plongé sérieusement), mais plutôt vous expliquer comment inclure le support du codec vidéo libre VP8 dans FFmpeg (en attendant que ce dernier soit mis à jour) pour bénéficier d'un outil complet d'encodage prêt à l'emploi.
Pas de miracle ici, le format étant extrêmement récent, il va falloir mettre les mains dans le cambouis pour adapter FFmpeg. Ce billet n'est pas destiné aux débutants : les instructions données ici peuvent endommager votre configuration.
Installer la version de FFmpeg prenant en charge notamment WebM
Pour les distributions incluant une version antérieure de FFmpeg, ubuntuforums.org détaille la méthode de compilation de la dernière version de ce logiciel (testée avec Ubuntu 10.04).
Tout d'abord supprimez le cas échéant les paquets x264, libx264-dev et ffmpeg de votre système (attention cela supprimera tous les logiciels dépendant de cette bibliothèque qu'il faudra donc penser à réinstaller ensuite):
sudo apt-get remove ffmpeg x264 libx264-dev
puis ajoutez les paquets suivants :
sudo apt-get update
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
Ensuite récupérez et installez la dernière version de x264 :
cd
git clone git://git.videolan.org/x264.git
cd x264
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | cut -d' ' -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | head -c 7`" --backup=no --default
Même chose avec la dernière version de VP8 :
cd
git clone git://review.webmproject.org/libvpx.git
cd libvpx
./configure --target=x86-linux-gcc
make
sudo checkinstall --pkgname=libvpx --pkgversion="`date +%Y%m%d%k%M`-git" --backup=no --nodoc --default
Remarques : si votre système est 64 bits, remplacez --target=x86-linux-gcc
par --target=x86_64-linux-gcc
dans l'exemple ci-dessus.
Au tour de FFmpeg :
cd
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion "4:SVN-r`svn info | grep Revision | awk '{ print $NF }'`" --backup=no --default
hash x264 ffmpeg ffplay
Utiliser FFmpeg pour produire des fichiers WebM
Vous pouvez à présent simplement transcoder un fichier existant en WebM avec cette commande :
ffmpeg -i video.xyz -threads 2 video.webm
qui comporte trois paramètres :
-i
permet de spécifier le nom de la vidéo à convertir (ici video.xyz),-threads
vous sert à spécifier le nombre de cœurs de votre processeur (ici 2), pour accélérer le transcodage,video.webm
est le nom du fichier final.
Enfin, comme vous en avez maintenant l'habitude, l'outil mkclean vous permettra d'optimiser votre fichier WebM (et, dans mon cas, de le rendre conforme à la spécification, selon mkvalidator).
A noter enfin que Google fournit avec ses patchs pour FFmpeg un jeu de réglages optimisés pour un encodage dans différents formats (voir ici) :
- 1080p50
- 1080p
- 360p
- 720p50
- 720p
À vous de jouer!