Compression vidéos pour le Web : un problème de tailleCompression vidéos pour le Web : un problème de taille

septembre 2009 | Pierre Boureau


Nous nous intéressons ici à un problème relativement simple en apparence : Comment déterminer les dimensions géométriques d’un fichiers en vue de le publier sur une page web ?

Les formats vidéo de production classiques ont en effet des caractéristiques souvent incompatibles avec une diffusion sur les réseaux de faible débit comme le sont les liaisons internet actuelles. Pour se faire une idée, on peut rappeler que la moindre vidéo DV ou HDV requière un débit de 25 Mbits/s là où la plupart des fournisseurs d’accès proposent au grand public des connexions dont les capacités atteignent au mieux quelques Mbits/s ! Les nouveaux formats HD utilisent des bandes passantes de 30 à 50 Mb/s, voir davantage pour certains formats broadcast.

Une diffusion sur le réseau internet implique donc nécessairement un ré-encodage des fichiers afin d’en réduire le poids.

Le choix du format et des codecs vidéo compatibles avec une diffusion web est un sujet à part entière, trop vaste pour en faire un état complet ici. En attendant l’émergence de formats ouverts comme le OGG et le codec Dirac, les principaux formats actuelles sont ceux supportés par le Plugin Adobe Flash [1].
- [Note de mise à jour - Octobre 2010] La société ON2 et son codec VP8 ayant été racheté en 2010 par Google, l’avenir de la video sur le web passera sans doute par le codec WebM.

H264, aussi appelé Mpeg4-Part 10 ou MPEG4-AVC (Advanced Video Coding) est le plus récent, et donc aussi celui qui a le plus d’avenir... Il permet aujourd’hui une diffusion de qualité satisfaisante à des débits relativement faibles (512Kb/s).

Optimiser les caractéristiques d’encodage

- Poids (en octets) et bande passante
Le poids d’un fichier vidéo est un éléments plus déterminant que sa taille (Largeur x Hauteur) pour la diffusion Web. Car il s’agit avant tout que la bande passante requise par la lecture en temps réel du fichier soit compatible avec la vitesse de connexion de l’internaute, soit sa capacité à télécharger le fichier au moins aussi vite qu’il est lu ! Il faudra donc avant tout fixer la bande passante du fichier produit en fonction du public visé. Par exemple, en 2009, on considère généralement qu’une bande passante de 512Kbps est un bon compromis entre qualité et capacités des équipement des internautes occidentaux.

- La taille d’affichage (en Pixels)
La plupart des logiciels de compression vidéo proposent des pré-règlages plus ou moins adaptés au contexte. D’autres font carrément l’impasse et compressent dans la taille en pixels de la source, ce qui n’est pas toujours judicieux comme on le verra plus loin.

Lorsqu’on limite la bande passante d’un fichier, les dimensions géométriques de la vidéo produite ont une influence directe sur la qualité d’encodage. Une image trop grande risque, à débit constant, une compression trop forte qui dégraderait la qualité finale de l’encodage. Rien ne sert de préserver la résolution si en parallèle on dénature l’image avec une compression trop forte. Cette question rejoint la problématique pris en compte par des logiciels comme Adobe Photoshop ou Gimp, pour l’image fixe, avec les modules d’export pour le web qui permettent cette optimisation "poids/dimensions/qualité". Dans le domaine vidéo, de tels outils n’existent pas encore...!

Là encore, un compromis devra être fait, prenant en compte la largeur de la colonne de la page web qui embarquera la vidéo, les dimensions de la source, la complexité de la vidéo (mouvements rapides et nombreux, plans larges fourmillant de détails, etc...), et la compatibilité souhaitée avec les baladeurs vidéo.

Un problème de taille

- Des pixels carrés
Le passage d’un format de production à un format web implique donc de redimensionner la vidéo d’origine, généralement composée de pixels rectangulaires [2]. Les dimensions de la source ne reflètent pas nécessairement les proportions réelles de l’image. Ainsi, une vidéo DV, qu’elle soit 4/3 ou 16/9, aura toujours les mêmes dimensions de 720x576 pixels, soit 5/4 !
Les lecteurs Flash sont aujourd’hui capables d’afficher correctement ces pixels rectangulaires au sein de la page web, mais le mode de consultation plein-écran peut poser problème dans la mesure où tous les écrans n’ont pas les mêmes dimensions et risquent de déformer l’affichage. Conserver les proportions d’origine et des pixels rectangulaires s’avèrent donc risqué. Il semble plus judicieux d’envisager systématiquement une conversion en pixels carrés.

- Oublions les barres noires !
Il est trop courant de rencontrer sur la toile des vidéos encodées avec des barres noires (ex : une vidéo 16/9 dans un cadre 4/3).
Là encore, ces barres risquent sérieusement de limiter le visionnage plein-écran. Par ailleurs, ces pixels inutiles alourdirons le poids du fichier ! L’idéal est donc de respecter scrupuleusement les proportions réelles de l’image, en la recadrant le cas échéant (les anglophones utilisent le terme « crop ») pour supprimer les barres letterbox présentent sur la source.

Spécificités du codage H264

Les codecs vidéo développés par le Motion Picture Experts Group (MPEG), dont les plus courants sont MPEG-1, MPEG-2, et toute la serie des MPEG-4 (DivX, Xvid, H264, etc...) s’appuient sur un découpage spacial de la luminance de l’image en macroblocs de pixels.

C’est ainsi que se sont imposés des dimensions familières à tous ceux qui manipulent des fichiers vidéo numériques :

Quelques dimensions usuelles
LargeurHauteurDescription
352 288 VideoCD PAL
640 480 NTSC SDTV (VGA)
720 576 PAL DV, DVD, SDTV
1280 720 HD 720P
1440 1080 HDV
1920 1080 Full HD

Dans la famille MPEG, seul le codec H264 est à l’heure actuelle compatible avec le plugin Flash qui rend les fichiers embarqués dans une page web consultablent en ligne. Le codage H264 utilise des macroblocs de 16x16 pixels. L’encodage d’une vidéo H264 s’avère donc sensiblement plus efficace si les dimensions - LARGEUR x HAUTEUR - du fichier généré sont des multiples de 16, c’est-à-dire composés d’un nombre entier de macroblocs.

Il nous faut donc trouver des dimensions d’image - LARGEUR x HAUTEUR - qui reflètent fidèlement en pixels carrés les proportions de la vidéo, et qui soient des multiples de 16.

Le calculateur ci-dessous n’a pas d’autre fonction que de proposer des dimensions compatibles...

Calculateur de dimensions en multiples de 16

  • 4/3   1,66   16/9   1,85   2,35
  • pixels

Notes

4 Messages

  • Compression vidéos pour le Web : un problème de taille 15 septembre 2010 17:59, par sophyque

    Bonjour,

    Votre calculateur ne fonctionne pas. C’est bien dommage car cela m’aurait servi. Est-ce que vous pouvez faire quelque chose ? D’avance merci.

    Cordialement.

  • Compression vidéos pour le Web : un problème de taille 15 septembre 2010 20:36, par Pierre

    ...Merci pour cette remarque. Vous utilisez Internet Explorer ?

    Le script javascript fonctionne parfaitement avec Mozilla Firefox, Apple Safari ou Google Chrome, Opera... mais semble effectivement buggé avec le navigateur de Microsoft...
    En attendant un débuggage hypothétique, vous pouvez essayer un de ces excellents navigateurs web ;-)

  • Compression vidéos pour le Web : un problème de taille 16 novembre 2010 05:10, par Perret Georges

    Merci pour vos explications qui me rassurent dans toute cette complexité de parametres. Bravo continuez !! A bientôt. Cordialement.

  • Je n’ai pas rencontré ce problème dans la mise en ligne de notre programme réalisé pour notre mémoire de fin d’étude, à l’heure des OVP (brightcove, dmcloud.net, libcast...) les formats et presets de sortis se définissent en ligne !?


SPIP v.3.0.17 [21515] | | Plan du site | Suivre la vie du site RSS 2.0