Transformez vos vidéos au format WebM

Magicien effectuant un tour

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

Mise à jour : Ce billet détaillait initialement comment patcher la version 0.5 de FFmpeg pour lui ajouter le support de WebM ; depuis, la version 0.6 de FFmpeg est sortie (le 15 juin 2010), incluant notamment le support de WebM. Désormais pour profiter de WebM avec FFmpeg, il suffit d'installer la dernière version de ce dernier (qui sera celle présente par défaut dans Ubuntu 10.10).

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!

Vus : 451
Publié par antistress : 174