Codecs et conteneurs
Au secours, je n'y comprends plus rien ! |
Présentation |
|
L'une
des sources de confusion habituelle
pour les débutants en vidéo numérique est le mélange entre les notions
de conteneur et de codec, facilité par des standards pas toujours
respectés. Cette confusion est née lors du passage de la vidéo dans le
monde informatique, lorsque l'analogique a cédé sa place au
numérique.
Or le monde informatique apprécie la souplesse même au prix de la
complexité. Essayons d'y voir clair dans cette embrouille !
|
|
|
| Conteneurs |
|
Les vidéos numériques, depuis
qu'elles sont manipulés par des ordinateurs, sont contenues
dans des fichiers. Ces fichiers sont des des conteneurs pour la vidéo. Ils sont identifiables par un nom dont l'extension
(après le point) permet souvent de déterminer le type. Ainsi, le
fichier "Ma vidéo.mov" est un fichier QuickTime : l'extension ".mov"
est réservé pour les fichiers QuickTime.
Mais
rien
ne permet déterminer
ce qu'il y a à l'intérieur de ce fichier. On peut supposer de la vidéo
ou de l'audio (mov est l'abréviation de Movie), mais sans certitude et
surtout sans connaître le type exact de vidéo contenue. Comme on doit
ouvrir une boite pour savoir ce qu'il y a dedans, il faudra ouvrir le
fichier conteneur pour lire les étiquettes et connaître son contenu.
Le conteneur vidéo le plus courant sur
Mac est celui géré par QuickTime.
Les fichiers ont une extension .mov. Apple appelle ce type de fichier
une Séquence QuickTime, appellation suffisamment générique pour
englober toutes les possibilités. Sous Windows, on trouve plus
facilement des fichiers AVI (Audio Video Interleave), avec deux
variantes (type 1 et type 2),
On peut trouver bien d'autres conteneurs,
dont les plus utilisés en vidéo sont :
- ASF (Advanced Streaming Format), lié à Windows Media, que l'on retrouve
plutôt sous forme de fichiers WMV,
- MKV (Matroska), conteneur libre,
- FLV (Flash
Video), pour le lecteur Flash sur le web,
- de
nombreux MPEG, conteneurs standards sous diverses formes
: Program
Stream comme le VOB, Transport Stream comme le M2TS, MP1, MP2 (audio),
M2V (vidéo), MP3 (audio), MP4, MPG, MPEG, etc.
- plein d'autres conteneurs, plus ou moins spécialisés.
|
|
|
| Codecs |
|
Nous avons donc de nombreux conteneurs
possibles, ce
qui pourrait suffire à assurer de nombreux malentendus. Mais à
l'intérieur de ceux-ci, les possibilités de contenus sont encore plus
nombreuses !

Comme une boite, un conteneur peut
contenir plusieurs objets. En vidéo, ce sont souvent des pistes, plus
ou moins liées entre elles : le conteneur peut déterminer le
multiplexage entre les pistes internes. C'est d'ailleurs le principal
objectif du conteneur : organiser la coexistence entre l'image, le son,
éventuellement du texte (sous-titres) et d'autres données liées.
Chaque
piste est encodée selon une méthode, avec un programme appelé
codeur/décodeur, abrégé en "codec"
. Cette appellation est un abus,
car on ne trouve souvent dans un "codec" qu'un décodeur. On devrait
donc l'appeler simplement "dec" ! Ce programme (codec) sert à traduire
la suite d'octets enregistrés dans un fichier en données
lisibles (ou plutôt audibles ou visibles). Nous voyons donc
donc
que
le
conteneur ne peut rien pour nos données, sans ces fameux codecs.
Attention : le conteneur ne contient pas le
codec
lui-même (le programme), mais juste les données enregistrées par ce
codec et une étiquette ( FourCC)
qui indique quel codec a été utilisé.
Si
vous avez créé un fichier vidéo, vous devriez savoir avec quel codec
(options d'encodage) il a été généré. Lorsque on se retrouve avec un
fichier venant de l'extérieur, comment retrouver cette information ?
QuickTime Player est souvent peu bavard sur le détail des codecs dans
les fichiers. Cependant, l'inspecteur (Commande - I)
donne quelques informations (ligne Format) :

Mais c'est quand
même mieux que Windows Media Player qui reste énigmatique sur ce
clip en H.264 :

Pour
en savoir plus, il faut utiliser des
outils tiers, dont deux sont particulièrement utiles :
- MPEG
Streamclip et sa fenêtre Informations sur le flux (Commande
- I), très utile pour les fichiers MPEG

- Le spécialiste VideoSpec,
outil pour Mac dédié à cette tâche :

- L'intéressant VideoInspector pour Windows (attention à désactiver le spyware à l'installation)

Les
codecs sont extrêmement nombreux, pour pouvoir couvrir tous les usages
multimédia. Beaucoup sont propriétaires, d'autres sont standards,
certains sont libres. Quand on sait qu'un même codec peut se retrouver
dans plusieurs conteneurs différents, que plusieurs codecs peuvent se
côtoyer dans un même conteneur, on peut mesurer l'étendue des
combinaisons, jusqu'à l'incompréhension.
Des codecs propriétaires (liste très
partielle qui ne sera jamais terminée) :
- Sorenson (multiples variantes),
- VP6 (pour le web),
- WMV (Windows Media Video),
- DivX (DivX Networks),
- VC-1 (HD Microsoft),
- DVCPRO (Panasonic, avec ses multiples variantes),
- XDCAM (Sony, avec ses multiples variantes),
- AIC, ProRes (Apple)
- le DV,
- le MPEG-1, obsolète,
- le MPEG-2, rendu célèbre par le DVD puis la TNT (DBV-T),
- le MPEG-4 et ses nombreuses déclinaisons (dont le H.264 qui
devient universel, le AVCHD), très actuel.
On retrouve aussi ces
standards en audio :
- le MP3, issu du MPEG-1 (MPEG-1 Layer 3),
- le AAC, issu du MPEG-4.
Les codecs libres sont très
nombreux,
mais finalement moins répandus, dont :
- x264 (implémentation libre du H.264),
- Xvid (implémentation
libre du DivX),
- Vorbis (audio),
- FLAC (audio).
Les
combinaisons entre
conteneurs et codecs sont nombreuses. Par exemple, on
pourra trouver des vidéos DV dans des fichiers .dv (iMovie), dans des
fichiers .mov (Final Cut) ou dans des fichiers AVI (les DV-AVI
venant de Windows). Pour le MPEG-2, c'est bien pire, puisque on en
trouve dans des fichiers VOB, M2V, MOD, MP4, MPG, MPEG, MTS, M2TS, MOV,
AVI, MKV, etc. Le standard MPEG est tellement souple que l'ont trouve
du MPEG-4 dans un conteneur MPEG-2 Transport Stream (le AVCHD) ou du
MPEG-2 dans un conteneur MPEG-4 (XDCam EX). Allez comprendre...
Il existe cependant quelques combinaisons
logiques,
comme des codecs
Apple (AIC, ProRes) que l'on ne trouve que dans des fichiers QuickTime,
ou des conteneurs précis comme le .dv de iMovie qui ne
contient que du DV brut.
 Exemples générés à
partir du même fichier
DV de 2 secondes :
Si vous essayez d'ouvrir ces fichiers,
vous allez
probablement rencontrer des difficultés de lecture, voire ne
pas
pouvoir les ouvrir du tout. Cela dépend étroitement de votre
configuration informatique. Car pour ouvrir un fichier vidéo, plusieurs
conditions doivent être remplies :
- avoir
une application
capable d'ouvrir le conteneur. QuickTime pour les fichier MOV, Windows
Media Player pour les WMV, un lecteur Flash pour les FLV (généralement
via le plugin Adobe pour votre navigateur),
- avoir
le codec
capable de décrypter les données contenues. Dans les exemples, il faut
avoir un codec DivX 5 ou compatible, ou le codec DVCPRO50, pas souvent
présent (sauf pour ceux qui ont Final Cut). Même le codec MPEG-2 peut
poser des problèmes, il n'est pas toujours livré avec les ordinateurs.
Les conteneurs et les codecs standards (MPEG)
sont
devenus les plus universels, malgré les tentatives des éditeurs
(Microsoft, Real, DivX, Apple, Adobe) de verrouiller les
lecteurs
vidéo.
Il
existe
cependant des logiciels presque universels, qui permettent
d'accéder à
plus de vidéos, sans trop galérer. Le plus célèbre est VLC (alias
VideoLan Client), qui sait ouvrir de nombreux conteneurs et décrypter
de nombreuses vidéos. Vous pourrez ainsi lire la plupart des exemples
avec la dernière version.
|
|
|
| Standards |
|
L'avènement
des standards en vidéo a généré une autre
confusion, plus légère cette
fois-ci : il existe plusieurs codecs pour le même standard. Par
exemple, Apple a son codec H.264, et x264 est une implémentation libre
de ce même standard. On retrouve le même phénomène pour les standards
répandus : ffmpeg ou le codec MPEG-2 Apple pour les MPEG-2, Lame ou
Apple pour les MP3, etc.
Les standards donnent les
règles, les codecs implémentent ces règles. Bien sûr, lorsque les
règles ne sont pas précises ou pas respectées, différents codecs
suivant le même standard peuvent devenir incompatibles !
A
noter que nous ne parlons pas de normes en français, la norme ayant une
connotation contraignante (AFNOR) que les standards n'ont pas : une
application n'a pas besoin d'être normalisée MPEG pour manipuler des
fichiers MPEG
|
|
|
| Récapitulatif : compatibilité conteneur/codec |
|
Codec
|
AVI
|
ASF/WMV
|
MKV
|
MOV
|
MPEG-2
|
MPEG-4
|
FLV
|
|
DV
|
x
|
|
|
x
|
|
|
|
|
DivX
|
x
|
x
|
x
|
x
|
|
|
|
|
WMV
|
x
|
x
|
|
x
|
|
|
|
|
MPEG-1
|
|
|
x
|
x
|
|
|
|
|
MPEG-2
|
|
|
x
|
x
|
x
|
x
|
|
|
Sorenson
|
x
|
x
|
|
x
|
|
|
x
|
|
VP6
|
|
|
|
|
|
|
x
|
|
H.264
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
x264
|
x
|
|
x
|
x
|
|
x
|
|
|
DVCPRO
|
x
|
|
|
x
|
|
|
|
|
|
| Conclusion |
|
Alors qu'on aurait pu préférer un schéma
simple ou le conteneur indiquait le codec, les intérêts des différents
intervenants et la souplesse des architectures informatiques ont
engendré une grande confusion dans le stockage de la vidéo dans des
fichiers. Certains codecs ayant eux-mêmes de nombreuses possibilités en
terme de compression, de définition, de rendu, c'est dans une véritable
jungle qu'il faut avancer !
Mais lorsqu'on a compris qu'un conteneur
n'est qu'une boite et qu'un codec traduit les données pour les
écrire ou les lire dans cette boite, la carte de la jungle est plus
facile à lire !
|
|
|
|
|
[ Envoyer cet article à un ami ]
|
|
|
|
Codecs et conteneurs Infos générales
|
|

Auteur : Antoine Désir
|
|
|
|
Sommaire
|
|
|
|
Liens utiles
|
|
|
|
Discussions dans les forums sur Codecs et conteneurs
|
|
|
|
Livres
|
|
|
|
|
|