Ceci est une ancienne révision du document !


Les fichiers vidéos 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.

Seul ces codec vidéo et audio sont supportés, et ceci pour garantir le support du format sur les navigateurs et les lecteurs vidéos.

IMPORTANT : le WebM n'est pas un format de compression ou un codec : une vidéo ne peut pas être compressée en WebM. On confond souvent la boîte (le conteneur, l'extension) avec son contenu (qui est de la vidéo ou de l'audio) géré par un codec.

Explications

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 ce fait presque exclusivement de façon logiciel, ce qui implique d'avoir un ordinateur suffisamment puissant pour lire les versions en haute définitions de ce format.

Depuis 2011 certains fabricants de composants électronique permette un décodage matériels de ce format. Certains terminaux de poche Androïd permettent un décodage matériel.

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.

RAPPEL, Les exemples d'instructions d'encodage vidéo suivant nécessite au moins la version 0.9 de ffmpeg. Utilisez le PPA de la page depot_ppa_de_jon_severinsson pour mettre à jour.

Convertir une vidéo en WebM (VP8+Vorbis) en deux passes

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
La qualité de la vidéo est bien meilleur avec l'utilisation d'une méthode d'encodage en plusieurs passes, ce phénomène est encore plus marqué lors de l'encodage de vidéo ayant un faible débit. Les dernières version de ffmpeg ont permis de gagner sur le temps d'encodage.

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

tandard / 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

INFORMATIONS SUR LES PARAMÈTRES MODIFIABLES

  • -i [fichier source] – Nom et chemin du fichier
  • -codec:v – indique l'encodeur vidéo utilisé, pour nous c'est la librairie libvpx VP8
  • -quality good – indique la qualité de l'encodeur vidéo VP8. les choix disponibles sont best / good / realtime. (La choix "best" apporte un gain de qualité insignifiant)
  • -cpu-used [0-5] – indique la vitesse de l'encodeur vidéo VP8. (Une valeur faible indique une bonne qualité)
  • -b:v [bitrate] – indique le débit vidéo souhaité
  • -r [25] – indique à l'encodeur, le nombre d'image par seconde (fps) du fichier de sortie. (Pour passer de 50fps à 25 fps)
  • -maxrate – Indique la limite haute sur le flux vidéo à ne pas dépasser.
  • -bufsize – indique à l'encodeur le niveau auquel il est possible d'aller de façon ponctuel en terme de débit en cas de besoin. de façon générale le double du maxrate est utiliser afin de tenir sur 2 secondes.
  • -qmin 10 -qmax 42 – Minimum et maximum des valeurs de quantification.
  • -threads [num] – indique le nombre de fil d'exécution à utiliser. Indiquez le nombre de CPU disponibles.
  • -vf scale=[width:height] – Changer de résolution. (La valeur “-1″ signifie “gardez le ratio”, exemple: “-1:360″ produira un fichier de 360p)
  • -codec:a libvorbis – indique à l'encodeur libvorbis de produire un fichier audio vorbis.
  • -b:a [bitrate] – Débit du flux audio
  • -f webm – indique à FFmpeg le format de sortie (si l'extension webm est présente sur le fichier de sortie, ce paramètre devient inutile)
  • -pass [1|2] – indique à FFmpeg de faire du multiple passes et indique quelle passe est à traiter
  • -an – désactive l'encodage audio, pour gagner du temps au premier à la première passe d'encodage

Autres encodeurs

D'autre encodeurs permettent le transcodage au format Webm:

Mplayer

VLC

Pour que votre fichier WebM soit utilisable de façon optimal 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.

Explications

Lors de la création de votre fichier WebM, les informations techniques (MetaData: taille, longueurs, résolution, fps, etc…) sont situé en fin de fichier. Celle-ci ne sont pas accessible 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 certain cas ne pas avoir lieu.

Solution

La solution, est de 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, certaine image apparaisse d'une coup et certaine se charge 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.

mkclean | Terminal

Téléchargement mkclean sur sourceforge.net http://sourceforge.net/projects/matroska/files/mkclean/. compilation nécessaire

mkclean --optimize --remux "fichier_source.webm" "fichier_sortie.webm"
mkvtoolnix | GUI

Les logiciels de la suite mkvtoolnix permettent la manipulation de fichiers WebM, ainsi que le déplacement des informations MetaData.

  • webm.1365348426.txt.gz
  • Dernière modification: Le 07/04/2013, 17:27
  • par thecraft