Les fichiers vidéos WebM
Qu'est-ce que le WebM ?
Le WebM est un format multimédia ouvert principalement destiné à être utilisé sur internet, mais une utilisation en local est tout à fait possible. La base de ce conteneur est un dérivé de Matroska, il utilise un flux vidéo encodé en VP8 et un ou plusieurs flux audios encodés en Vorbis, il peut également contenir des sous-titres.
Seuls ces codecs vidéo et audio sont supportés, et ceci pour garantir le support du format sur les navigateurs et les lecteurs vidéos. (Le flux vidéo peut aussi être encodé en VP9, successeur de VP8, mais ce codec n'est pas activé par défaut sur tous les navigateurs).
Lecture des fichiers WebM
La lecture des fichiers WebM est possible par les lecteurs multimedia les plus courants (vlc, xine, gstreamer, mplayer …), mais également par les navigateurs internet (Firefox, Chromium, Opera…) et sur les principaux systèmes d'exploitations.
Possibilités et limitations
Pour le moment, le décodage de la vidéo se fait presque exclusivement de façon logicielle, ce qui implique d'avoir un ordinateur suffisamment puissant pour lire les versions en haute définition de ce format.
Depuis 2011 certains fabricants de composants électroniques permettent un décodage matériel de ce format.
Certains terminaux de poche Android permettent un décodage matériel.
Création de fichiers WebM
Graphiquement
La majorité des transcodeurs vidéos permettent de convertir graphiquement une vidéo au format WebM. Vous en trouverez une liste assez complète sur cette page.
En ligne de commande
Avec Avconv
Avconv permet de convertir en ligne de commande vers du Webm.
- Pour convertir vers une qualité correcte :
avconv -i /chemin/vers/vidéo/à/convertir.avi -qmin 20 -qmax 30 /chemin/vers/vidéo/produite.webm
- Pour convertir le contenu d'un dossier avec des mp4 vers du WebM :
find ./ -name '*.mp4' -exec bash -c 'avconv -i "$0" -qmin 20 -qmax 30 "${0%%.mp4}.webm"' {} \;
Avec FFMPEG
ffmpeg est un logiciel de lecture et encodage de vidéo très puissant. Pour avoir une qualité et une rapidité d'encodage WebM excellente il vous faut disposer d'une des dernières versions de ce logiciel. Voici quelques commandes utiles :
- Pour convertir une vidéo en WebM (VP8+Vorbis) en deux passes (vidéo du web 360p à 500kbit/s):
ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 500k -r 25 -qmin 10 -qmax 42 -maxrate 800k -bufsize 1600k -threads 4 -vf scale=-1:360 -an -pass 1 -f webm /dev/null ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 500k -r 25 -qmin 10 -qmax 42 -maxrate 800k -bufsize 1600k -threads 4 -vf scale=-1:360 -codec:a libvorbis -b:a 128k -pass 2 -f webm sortie.webm
- Pour convertir une vidéo en WebM (VP8+Vorbis) en une passe:
- Standard / vidéo du web (480p à 600kbit/s):
ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -maxrate 600k -bufsize 1200k -qmin 10 -qmax 42 -vf scale=-1:480 -threads 4 -codec:a vorbis -b:a 128k sortie_480p.webm
- Standard / vidéo PAL (576p à 1Mbit/s):
ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 1000k -maxrate 1000k -bufsize 2000k -qmin 10 -qmax 42 -vf scale=-1:576 -threads 4 -codec:a vorbis -b:a 128k sortie_576p.webm
- Standard / vidéo HD ready (720p à 2Mbit/s):
ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 2000k -maxrate 2000k -bufsize 4000k -qmin 10 -qmax 42 -vf scale=-1:720 -threads 4 -codec:a vorbis -b:a 128k sortie_720p.webm
- Standard / vidéo FullHD (1080p à 4Mbit/s):
ffmpeg -i "fichier source" -codec:v libvpx -quality good -cpu-used 0 -b:v 4000k -maxrate 4000k -bufsize 8000k -qmin 10 -qmax 42 -vf scale=-1:1080 -threads 4 -codec:a vorbis -b:a 128k sortie_1080p.webm
Autres encodeurs
WebM en téléchargement progressif
Pour que votre fichier WebM soit utilisable de façon optimale et que les visiteurs de votre site web puissent avancer ou reculer dans la vidéo, vous avez besoin d'apporter une dernière modification à votre fichier.
En effet lors de la création de votre fichier WebM, les informations techniques (MetaData: taille, longueur, résolution, fps, etc…) sont situées en fin de fichier. Celles-ci ne sont pas accessibles au navigateur web utilisé avant le téléchargement complet du fichier, celui-ci pouvant peser plusieurs centaines de Mo, la navigation et/ou le lancement de la vidéo peut dans certains cas ne pas avoir lieu. Pour résoudre cela il vous faut déplacer ces informations en début de fichier.
On peut faire une comparaison avec un fichier image, jpg "progressif", sur les pages web de l'internet, certaines images apparaissent d'un coup et certaines se chargent de façon progressive. Ces fichiers jpg ont leurs MetaData en début de fichier, cela permet au navigateur de les faire apparaître de façon progressive sur nos pages.
ffmpeg ne permettant pas cette manipulation (pour le moment), il faut utiliser un logiciel supplémentaire, soit mkclean en ligne de commande soit mkvtoolnix avec une interface graphique.
mkclean
Téléchargement mkclean sur sourceforge.net et compilez-le. Puis lancez la commande:
mkclean --optimize --remux "fichier_source.webm" "fichier_sortie.webm"
mkvtoolnix
Les logiciels de la suite mkvtoolnix permettent la manipulation de fichiers WebM, ainsi que le déplacement des informations MetaData.
Problème connu
Erreur Type MIME
Certains serveurs WEB ne disposent pas du MIME-type video/webm dans leur registre des media types. Si ces identifiants sont indisponibles sur le serveur utilisé, une erreur de chargement vidéo apparaîtra. Pour résoudre ce problème soit :
- Vous accédez au panneau de contrôle de votre hébergement et modifiez la partie mime-types en ajoutant video/webm dans le registre des médias,
- Soit vous créez ou modifiez le fichier
.htaccess
situé à la racine de votre site internet et ajoutez cette ligne:
- .htaccess
AddType video/webm .webm
Votre serveur supporte désormais le format WebM.