Description du format VOB
Je ne connais pas tous les détails des fichiers VOB, je ne vais donc expliquer que ce que j'en sais. De toute façon le reste des informations ne nous servent pas pour faire du DivX ;-).
Un fichier VOB contient plusieurs flux multiplexés. Ces flux sont de trois grand types :
Chaque flux possède un code hexadécimal qui indique sa position. Les codes les plus courants sont :
De 0xE0 à 0xEF : flux vidéos. En général il n'y as qu'un seul flux.
De 0x80 à 0x8F : flux audio au format AC3. il y a très rarement plus de 4 ou 5 flux.
De 0xC0 à 0xCF : flux audio au format MP2. Format assez rare. C'est l'ancêtre du fameux MP3.
De 0x20 à 0x2F : flux de sous-titres. Selon les films il y a plus ou moins de sous-titres.
Pour se repérer dans les fichiers VOB il existe deux séries de codes d'index. Les VOB-ID et les CELL-ID.
Les VOB-ID séparent généralement les différents films ou contenus. Ainsi si sur un même VOB il y a un bout du film et la bande annonce, la bande annonce possède un VOB-ID différent.
Les CELL-ID indiquent eux des petites séparations souvent invisibles. Leur principale utilisation est le chapitrage des films. Un même film possède très souvent un grand nombre de CELL-ID.
On peut donc représenter schématiquement un fichier VOB ainsi (le contenu n'est qu'un exemple) :
VOB-ID 1 | VOB-ID 2 | ||||
CELL-ID 1 | CELL-ID 2 | CELL-ID 3 | CELL-ID 4 | CELL-ID 1 | |
0xE0 | MV2 | MV2 | MV2 | MV2 | MV2 |
0x80 | AC3 anglais | AC3 anglais | AC3 anglais | AC3 anglais | AC3 anglais |
0x81 | AC3 français | AC3 français | AC3 français | AC3 français | |
0x20 | Sous-titres anglais | Sous-titres anglais | Sous-titres anglais | Sous-titres anglais | Sous-titres anglais |
0x21 | Sous-titres français | Sous-titres français | Sous-titres français | Sous-titres français | Sous-titres français |
Evidement, comme tous ces flux sont regroupés dans un unique fichier, chaque flux est découpé en petite partie et les petits bouts sont assemblés de la sorte :
VOB-ID 1 | CELL-ID 1 | 0xE0 : MV2 | 0x80 : AC3 anglais | 0x80 : AC3 français | 0x20 : Sous-titres anglais | 0x21 : Sous-titres français | 0xE0 : MV2 | 0x80 : AC3 anglais | ... | 0x21 : Sous-titres français | CELL-ID 2 | 0xE0 : MV2 | ... |
C'est pour cela qu'il ne faut jamais encoder chaque VOB séparément. Les flux à un instant précis ne sont pas du tout synchronisés !