Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Multimédia/Vidéo numérique

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Introduction

Tout d'abord, une vidéo numérique, c'est quoi ?

  • un container, qui interpole les pistes vidéo, audio, voire plus
  • un ou plusieurs flux vidéo
  • un ou plusieurs flux audio
  • parfois d'autres fichiers, tels que des sous-titres ou des attachements divers

Quelque soit la révolution technologique, un fichier vidéo est et restera rien de plus que cela.

Bases

Il y a vraisemblablement des centaines de containers et codecs autres que ceux décrits ci-dessous. Cet article n'a pas vocation de musée, mais de résumer le principal utilisé actuellement.

Containers

Commençons par les containers. Il y en a de tous types, chacun avec leurs limites. Tout néophyte met arbitrairement un « .avi » à la fin de son fichier, mais cela ne suffit pas pour autant pour que ce soit correct.

Container Extension(s) Commentaire
BDAV m2ts Variante du MPEG-2 utilisé par les disques en BlueRay et les caméras en AVCHD.
Flash Video flv Format propriétaire et bien peu évolutif, mais très utilisé pour embarquer de la vidéo dans des pages web (ex. Youtube, Dailymotion, etc).
Matroska mkv Nombre de flux illimité, ainsi que presque tous les codecs courants (à l'exception des brevetés, tels que ceux de M$)
MPEG-2 mpg Le MPEG-2 est un container, mais aussi un codec audio + vidéo. Il est autant utilisé pour les DVDs que pour de la HD (variante PS = Program Stream) ou les flux satellite ou câble numériques (variante TS = Transport Stream).
MPEG-4 mp4, m4a, m4v Evolution du MPEG-2 pour le support de flux via internet (IP) et d'autres codecs (ex. Divx, Xvid).
Realmedia ra, rm Format archi propriétaire et non évolutif. Semble être en perte de vitesse, au profit des formats MPEG-4.
RIFF avi Support 1 flux vidéo et 3 audio. Technologiquement obsolète, mais encore le plus utilisé
Quicktime mov Permet aussi beaucoup de codecs différents. Très prisé par les Maqueux (la plupart des applications sur Mac requièrent l'utilisation du format Quicktime).
VOB vob Container MPEG-2 dédié au DVD. En plus du MPEG-2, il permet le chapitrage et les menus.
Windows Media wma, wmv Format archi propriétaire et absolument pas évolutif vers des standards ouverts.

A cela se pose 2 questions:

  • Pourquoi autant de containers ? Facile: l'évolution. Il y a 10 ans nous vivions l'avènement du DVD, aujourd'hui celui de la vidéo par internet.
  • Lequel est le meilleur ? Selon les sociétés commerciales (Microsoft, Apple, Realmedia, Adobe), forcément le leur. Toutefois les formats Matroska et MPEG-4 prennent gentiment le dessus.

Codecs vidéo

Codec Commentaire
AVC (H.264) Le nouveau standard AVC, utilisé dans les disques en BlueRay et sur les caméras HD sur disque / carte, généralement utilisé de pair avec de l'AAC ou de l'AC3 pour l'audio. Selon les besoins, peut être utilisé avec n'importe quel codec audio (pour autant qu'il soit compatible avec le container).

Une particularité du H.264 est de pouvoir définir un aspect ratio directement au niveau du codec, même si le container ne le supporte pas. Ainsi il devient possible d'utiliser des images anamorphiques dans de l'AVI.

Divx Je connais mal de Divx, alors que le Xvid est de meilleure qualité et gratuit
FFV1 Flash V1, très proche du MJPEG (obsolète)
MPEG-2 Le standard utilisé pour le DVD, la télévision numérique (satellite, câble, TNT) et les caméras HD sur cassettes.
VP6 Codec commercial utilisé principalement par Flash et Skype
Theora
Xvid Un des codecs les plus utilisés avec Divx dans l'underground pour la copie de films. Reconnu pour être plus fidèle à l'original que Divx, mais moins utilisé que ce dernier. Le marketing de quelques sociétés a fait croire le contraire à la plupart.

Codecs audio

Codec Commentaire
AAC (MP4)
AC3
MPEG1/2 layer 3 (aka MP3)
Vorbis

Tailles d'image

Tailles standard

Les tailles d'images correspondent en principe aux tailles d'écran, ou une division. Deux types sont utilisés: 4:3 (1.33) ou 16:9 (1.78). Les écrans en 16:10, devenus très courants dans l'informatique, n'ont pas pour autant des résolutions différentes.

Nom Taille Aspect
4k (Ultra HD, 2160) 3840 x 2160 16:9
2k 2704 x 1524 16:9
hd1080 (Full HD, 1080) 1920 x 1080 16:9
sxga 1280 x 1024 4:3
hd720 (720) 1280 x 720 16:9
xga 1024 x 768 4:3
hd480 (480) 852 x 480 16:9
4cif 704 x 576 4:3
vga 640 x 480 4:3
cif 352 x 288 4:3

Anamorphisme / Aspect Ratio

La taille affichée n'est pas forcément égale à la taille enregistrée ! Malgré la confusion si courante des utilisateurs et des développeurs, il est possible de définir un aspect ratio, c'est à dire un facteur d'étirement de l'image. Le principe n'est pas nouveau. Il était déjà pratiqué sur la VHS, où l'image enregistrée ne représentait que le quart de l'écran (convertir en 352x288 ou 320x240 en numérique). Malheureusement certains players ne les supportent pas pour autant. Nous allons donc nous limiter aux lecteurs simples et gratuits tels que VideoLAN ou Mplayer, sans nous préoccuper de concurrents obsolètes.

Bon, l'aspect ratio, c'est quoi ? Prenons par exemple un DVD. L'image est de 720 x 576 (720 / 576 = 1.33 = 4:3). Alors comment fait-on pour afficher une image en 2.35 ? La plupart des rippers répondront qu'il suffit de redimensionner l'image en 720 x 306 (720 / 306 = 2.35). Ben non, en fait l'image est enregistrée en 720 x 576 avec un aspect ratio relatif de 1.77 relatif (1.33 x 1.77 = 2.35), ou de 2.35 absolu (dépend des programmes). Cela s'appelle l'anamorphisme (= pas de même forme).

Cela revient à dire que 720p = 720 pixels verticaux enregistrés, et non pas 528 ~ 534 comme la plupart le redimensionnent.

Voilà qui est dit. Maintenant, comment arriver à définir un aspect ratio ? Il y tout de même quelques solutions:

  • utiliser le codec H.264, qui permet de le définir, même pour de l'AVI
  • utiliser le codec MPEG-2 , toutefois très limité (4:3 ou 16:9)
  • utiliser un container MPEG-4 (très limité quant aux codecs autorisés)
  • utiliser un container Matroska (le plus ouvert et le plus simple de tous)

En conclusion, les meilleurs conseils que je puisse vous donner est d'utiliser le H.264 et Matroska. De plus en plus de solutions hardware les supportent tous deux. Personnellement, j'ai opté pour un Asus O!Play HDP-R1. Petit, bon marché, super économique (7W), et qui supporte le tout en FullHD / HDMI. Alors pourquoi rester dans le passé ?

Quelques explications illustrées:

I-frame, P-frame, B-frame et GOP

  • Une I-frame (Intra), aussi appelée Key frame est une image pleine, un peu comme une photo en JPEG.
  • Une P-frame (Predictive) contient le différentiel et le déplacement (motion vector) depuis une image précédente (I ou P).
  • Une B-frame (Bidirectional predictive) comme une P-frame, mais en référence avec une image précédente et suivante (I ou P). Contrairement à une P-frame, une B-frame n'a pas de conséquence sur l'image suivante et permet une compression supérieure (ainsi que la perte qui va de pair).
  • Un GOP (Group of Pictures) contient 1 I-frame, suivie de plusieurs P ou B-frames
    • Closed GOP - il est possible qu'une P-frame ou B-frame fasse référence à une image hors de son groupe. Un Closed GOP signifie qu'aucune image différentielle ne sort de son groupe, ce qui est obligatoire en MPEG-2 en multi-angles.
    • En MPEG-2 la taille maximum d'un GOP est de 18 images en NTSC et de 15 en PAL


Les erreurs courantes

Comment perdre son temps et de l'espace pour rien ? Les solutions ne manquent pas.

Redimensionnement de l'image

La plupart des films sont redimensionnés pour être affichés avec les bonnes proportions. Lisez le chapitre sur l'anamorphisme et optez pour le codec H.264 ou un container Matroska. Les avantages sont éloquents:

  • pas besoin de redimensionner l'image (moins de manipulations)
  • gain considérable de temps à la compression
  • pas de perte inutile de qualité

Bordures noires

Certains DVDs ne sont pas seulement anamorphiques, mais contiennent aussi des bandes noires. Laisser ces bandes représente env. 15% de la taille de la vidéo finale. C'est du gaspillage.

Compression à bitrate constant ou variable

Le bitrate constant est une abération, quoique toujours utilisé par les constructeurs de DVD. Quelque soit le besoin, on utilise toujours autant de place, même quant il n'y a rien.

Le bitrate variable est une meilleure approche, mais nécessite une double passe. La première passe permet de détecter les moments à fortes variations, puis la 2ème à l'encodage.

Il reste toutefois une approche beaucoup plus simple, basée sur la qualité qu'on désire obtenir. Typiquement une valeur de « 3 » en Xvid, ou de « 24 » en H.264 (subme 7, trellis 1) offre une qualité excellente. L'avantage est qu'il suffit d'une seule passe. Par contre il est impossible de prédire la taille du résultat (peut varier du simple au double pour 2 films de même durée), ni de déterminer le bitrate maximum, ce qui pourrait être un problème en streaming.

Codec

Encore beaucoup de films sont encodés en divx3 (très bogué). Passez à xvid ou encore mieux à H.264. C'est gratuit et bien plus performant.

Conversions par réencodage

Le bon sens permettrait à beaucoup de gagner du temps. Malheureusement les réactions du type « c'est de l'informatique, c'est trop compliqué pour moi » vous rendront la vie encore plus difficile. Par exemple, comment convertir un fichier de caméra en AVCHD (m2ts) ? Si vous utilisez Mediainfo, vous constaterez que les flux sont en H.264 et en AC3 pour la plupart. Ce n'est que le container qui n'est pas lisible par la plupart des applications.

La solution est très simple. On ouvre le fichier M2TS avec Avidemux, puis on le sauve en AVI en copiant simplement les flux tels quels. Voilà, le tour est joué en 30 secondes. Quelques réglages peuvent être nécessaires en fonction du format de l'image et de la caméra.

Aucune conversion de codec n'est nécessaire, juste un peu de bon sens ! Pourquoi perdre des dizaines d'heures pour rien (et c'est peu dire en FullHD).

Conclusions

Tout cela doit sembler bien compliqué pour la plupart, c'est indéniable. Sachez qu'il existe toutefois des outils gratuits et très simples d'utilisation, qui vous permettront d'encoder vos vidéos sans vous arracher les cheveux à chaque fois.

Produit Plateforme(s) Commentaire
HandBrake Windows, Mac, Linux Convertisseur de vidéos orienté MPEG-4 et H.264. Très simple, recommandé
Avidemux Windows, Mac, Linux Convertisseur de vidéos (tous formats). Moins simple, mais très utile, typiquement du le FLV
Mediainfo Windows, Mac, Linux L'outil qui vous permettra de tout savoir sur vos vidéos - à avoir absolument !
tsMuxeR Windows, Mac, Linux (Dé)multiplexeur de flux BDAV (M2TS)

ou encore d'autres outils comme

  • ffmpeg
  • mplayer / mencoder