Wat staat op een DVD?

Wat staat er precies op een DVD Video schijf? Wat zijn VOB, IFO en BUP bestanden? Dit alles wordt hier uitgelegd.

Wanneer je het DVD station bekijkt, zal je minstens 2 mappen zien:

22.08.2000 03:20 <DIR> AUDIO_TS
22.08.2000 05:53 <DIR> VIDEO_TS

AUDIO_TS wordt gebruikt voor DVD Audio en bevat geluidsbestanden, terwijl VIDEO_TS gebruikt wordt om alle data van de film te bewaren. De schijf kan ook meer mappen hebben, deze bevatten dan DVD-ROM extra's.

Laten we nu even de VIDEO_TS map bekijken:

22.08.2000 05:53 <DIR> .
22.08.2000 03:20 <DIR> ..
22.08.2000 05:23 12'288 VIDEO_TS.BUP
22.08.2000 05:23 12'288 VIDEO_TS.IFO
22.08.2000 05:23 333'824 VIDEO_TS.VOB
22.08.2000 05:23 59'392 VTS_01_0.BUP
22.08.2000 05:23 59'392 VTS_01_0.IFO
22.08.2000 05:23 8'192 VTS_01_0.VOB
22.08.2000 05:27 1'073'643'520 VTS_01_1.VOB
22.08.2000 05:31 1'073'631'232 VTS_01_2.VOB
22.08.2000 05:32 104'785'920 VTS_01_3.VOB
22.08.2000 05:32 88'064 VTS_02_0.BUP
22.08.2000 05:32 88'064 VTS_02_0.IFO
22.08.2000 05:32 59'379'712 VTS_02_0.VOB
22.08.2000 05:36 1'073'436'672 VTS_02_1.VOB
22.08.2000 05:40 1'073'549'312 VTS_02_2.VOB
22.08.2000 05:45 1'073'502'208 VTS_02_3.VOB
22.08.2000 05:49 1'073'371'136 VTS_02_4.VOB
22.08.2000 05:53 1'073'555'456 VTS_02_5.VOB
22.08.2000 05:57 810'952'704 VTS_02_6.VOB

Zoals je kan zien zijn er 3 soorten bestanden met .VOB, .IFO en .BUP extensies:

VOB's - Video OBjects

Een VOB is een bestand met verschillende stromen bij elkaar gemultiplexed: Video, Audio en Ondertitels. Video is MPEG-2, audio kan AC-3, Linear PCM, Mpeg 2 multichannel of MPEG1 layer2 2-kanaalsaudio zijn. AC3 is zowat de norm en MPEG-2 multichannel vind je maar op enkele schijven terug (een voorbeeld is "In the line of fire, PAL edition") omdat dit formaat oorspronkelijk het normformaat was in Regio2 (Europa en Japan) maar later werd opgegeven. PCM vind je meestal op muziek DVD's en MP2 op goedkopere producties. PCM is een hoog kwaliteitsgeluid zonder compressie wat veel ruimte inneemt, dus is het niet de ideale keuze voor volledige filmen met extra's en meerdere talen. AC3 stromen hebben een bitrate tussen 192 en 448kbit/s. 192kbit/s wordt gebruikt voor 2-kanaalsgeluid, en 384-448kbit/s voor 5.1-kanaals surroundgeluid.

Een VOB bestand kan bestaan uit een hoofdvideostroom en verschillende multi-angle stromen, deze laten je toe om (bijvoorbeeld) tussen invalshoek om te schakelen tijdens de film. Deze mogelijkheid wordt meestal gebruikt om storyboards of andere extra's te tonen tijdens het spelen. De maximale bitrate van de videostroom is 9.8mbit/s. Op elk gegeven moment moeten de video- en audiostromen samen minder dan 10mbit/s zijn. Het is mogelijk om tot 9 verschillende audiostromen te hebben en je kan meestal tijdens het afspelen tussen audiostromen schakelen (deze mogelijkheid kan worden uitgeschakeld tijdens het opstellen van een DVD). Je kan ook tot 32 verschillende ondertitelstromen hebben tussen dewelke je tijdens de film ook weer kan omschakelen. Ondertitels zijn 4-kleuren bitmaps die over de videostroom worden afgespeeld (dit noemen we overlay), ze zijn dus niet in de videostroom geëncodeerd.

Laten we een VOB bestand eens naderbij bekijken door onze oude favoriet vStrip te gebruiken:

Scanning for stream id's, press control-c to quit...
Found 0xBF = Private 2 [@LBA 0]
Found VOB-ID: 01/CELL-ID: 01 [@LBA 0]
Encountered encrypted sector, attempting key recovery [@LBA 1]
Deduced key: 0xC00374C61C (2/2 vkey(s))
Found 0xE0 = Video 0 [PTS 0:00:00.290 @LBA 1]
Width = 720
Height = 480
Aspect-ratio = [3] 16:9 display
Frame-rate = [4] 29.97 (30000/1001) fps
Found 0xBD = Private 1, sub 0x80 [PTS 0:00:00.224 @LBA 99]
Found 0xBD = Private 1, sub 0x81 [PTS 0:00:00.224 @LBA 100]
Found 0xBD = Private 1, sub 0x82 [PTS 0:00:00.224 @LBA 101]
Found 0xBD = Private 1, sub 0x83 [PTS 0:00:00.224 @LBA 102]
Found 0xBE = Padding [@LBA 117]
Found 0xBD = Private 1, sub 0x20 [PTS 0:00:00.724 @LBA 169]
Found 0xBD = Private 1, sub 0x21 [PTS 0:00:00.724 @LBA 170]
Found VOB-ID: 02/CELL-ID: 01 [@LBA 378]

Zoals gezegd is er meestal maar een videostroom, altijd met het id: 0xE0. PTS is de Program Time Stamp en vermeld wanneer een bepaalde stroom start in verhouding tot het begin van het VOB bestand. Zoals je kan zien is de resolutie 720x480 dus is het een NTSC DVD. Een frame-rate van 29.97 zegt eigenlijk hetzelfde. De DAR (display aspect ratio of schermdimensie) van de stroom is 16:9. Dan zijn er 4 audiostromen: 0x80, 0x81, 0x82 en 0x83. Dit zijn telkens AC3 stromen want alle AC3 stromen hebben als stroom (stream) 0xBD, en substroom (substreams) 0x8*. Wanneer er een DTS stroom is heeft deze meestal als stroom-id: 0xBD 0x88 of 0xBD 0x89. PCM stromen zitten ook in stroom 0xBD, zij hebben stroom-id's: 0xA*, van 0xA0 tot 0xA9. MP2 audio ten slotte zit in de stroom 0xC*. Hier is een voorbeeld van een PCM en MP2 stroom:

Found 0xBD = Private 1, sub 0xA0 [PTS 0:11:01.479 @LBA 4]
Found 0xC0 = Audio 0 [PTS 0:00:00.440 @LBA 25]

Er zijn ook 2 substromen, 0x20 en 0x21. Alle ondertitelstromen zitten ook in de 0xBD stroom.

Verder zijn er meestal nog padding stromen (0xBE) maar zij zijn niet van belang voor ons.

Je hebt misschien ook de VOB-ID's en Cell-ID's gezien. Een Cell is de kleinste eenheid op een DVD. Op een simpele DVD vertegenwoordigt dit veelal een hoofdstuk maar bij veel schijven is het ingewikkelder. Als je geïnteresseerd bent in Cell's op een DVD raad ik aan om Scenarist te leren gebruiken, enkel dan zal je echt begrijpen hoe ze werken. Van VOB-ID's heb ik nog altijd niet begrepen hoe ze juist worden aangemaakt en voor welke structuur ze staan. Meestal heeft elke eenheid op zich een eigen VOB-ID, bijvoorbeeld de hoofdfilm en de trailer. Bij multi-angle en seamless branching schijven heeft elke kijkhoek een eigen VOB-ID.

IFO's - InFOrmation

IFO bestanden geven de speler belangrijke navigatie-informatie zoals waar een hoofdstuk begint, waar een bepaalde audiostroom of ondertitelstroom zit, enz. Daarom is het enkel mogelijk om bepaalde delen (zoals een bepaald hoofdstuk) van een film te rippen als je een ripper hebt die deze bestanden kan lezen.

Onze oude vriend vStrip kan dit, laten we een blik werpen op de output die we krijgen wanneer we ifo parsing gebruiken (voorbeeld van commando: vStrip f:\video_ts\vts_02_1.vob -if:\video_ts\vts_02_0.ifo)

Parsing "f:\video_ts\vts_02_0.ifo"...
0. Length: 02:07:15:24 in 15 cell(s).
1. Length: 00:00:01:01 in 1 cell(s).
Scanning for stream id's, press control-c to quit...

Zoals je kan zien zijn er 2 PGC's of ProGram Chains in deze film. PGC 0 vertegenwoordigt de hoofdfilm, terwijl PGC 1 het studiologo in het begin voorstelt. Deze structuur kan ingewikkelder zijn maar meestal is het zo simpel als hierboven. Multi-angle films hebben verschillende PGC's van dezelfde lengte en seamless branching films  hebben verschillende PGC's met een verschillende lengte. Door de juiste PGC te selecteren kan je de juiste versie van de film krijgen. En... het PGC stemt overeen met het titelnummer dat wordt weergegeven in de speler. Hier is een voorbeeld (Bij de Matrix DVD heeft de "follow the white rabbit"-extra Titelnummer 6 of met ander woorden PGC 5 omdat het vanaf 0 begint te tellen).

Uiteindelijk maar niet onbelangrijk: IFO bestanden zijn niet encrypted.

BUP's - BackUP

BUP bestanden zijn gewoon back-up bestanden van de IFO bestanden. Net als hun tegenhangers zijn ze niet encrypted.

Kijk dichterbij

Laten we nog eens naar het voorbeeld kijken, nu we elk type bestand kennen:

22.08.2000 05:23 12'288 VIDEO_TS.BUP
22.08.2000 05:23 12'288 VIDEO_TS.IFO
22.08.2000 05:23 333'824 VIDEO_TS.VOB
22.08.2000 05:23 59'392 VTS_01_0.BUP
22.08.2000 05:23 59'392 VTS_01_0.IFO
22.08.2000 05:23 8'192 VTS_01_0.VOB
22.08.2000 05:27 1'073'643'520 VTS_01_1.VOB
22.08.2000 05:31 1'073'631'232 VTS_01_2.VOB
22.08.2000 05:32 104'785'920 VTS_01_3.VOB
22.08.2000 05:32 88'064 VTS_02_0.BUP
22.08.2000 05:32 88'064 VTS_02_0.IFO
22.08.2000 05:32 59'379'712 VTS_02_0.VOB
22.08.2000 05:36 1'073'436'672 VTS_02_1.VOB
22.08.2000 05:40 1'073'549'312 VTS_02_2.VOB
22.08.2000 05:45 1'073'502'208 VTS_02_3.VOB
22.08.2000 05:49 1'073'371'136 VTS_02_4.VOB
22.08.2000 05:53 1'073'555'456 VTS_02_5.VOB
22.08.2000 05:57 810'952'704 VTS_02_6.VOB

De VIDEO_TS.* bestanden staan voor het eerste dat wordt afgespeeld. Dit wordt vastgelegd bij het opmaken van de DVD en is het eerste dat wordt afgespeeld wanneer de schijf in de speler wordt gestoken. Meestal is dit een copyright boodschap of een productiehuis logo, maar het kan ook een taalkeuze menu zijn om de taal van het hoofdmenu te kiezen. Het video_ts.vob bestand bevat de video en audio gegevens, het video_ts.ifo bestand de navigatiegegevens en video_ts.bup is de back-up bestand van video_ts.ifo.

Er zijn 2 ifo bestanden meer: vts_01_0.ifo en vts_02_0.ifo. De eerste 2 nummers in de naam staan voor het titelnummer. vts_01_* is titel 1, vts_02_* titel 2, enz. Uiteraard kunnen er maximaal 99 titels zijn (want vts_00_* bestaat niet). Elke titel kan 10 VOB bestanden hebben, terwijl het eerste VOB bestand (vts_XX_0.vob) altijd de menu voor die titel bevat. Elke titel heeft dus minstens 2 VOB's (een voor de menu en een voor het filmdeel) en precies een ifo en bup bestand.

In ons geval is titel 1 een achter de schermen filmpje en heeft het zijn eigen menu. Titel 2 is de hoofdfilm, ook met een eigen menu.

Zoals je ziet is de maximale grootte van een VOB-bestand 1GB. In feite moeten de bestanden kleinder dan of precies een GB (1024x1024x1024Bytes) groot zijn, maar er zijn er enkele die groter zijn en die kunnen niet op een PC worden afgespeeld.

Nu de laatste vraag: hoe lokaliseer ik de hoofdfilm op een schijf? Het grootste .ifo bestand zal je het titelnummer geven en dan heb je alle VOB bestanden nodig behalve het VOB menu (tenzij je ook de menu wilt natuurlijk). De meeste rippers (als ze ifo parsing niet kunnen) gebruiken deze regel om de hoofdfilm  te selecteren en het .ifo bestand te kopiëren.

Binnen in een VOB

DVD video inhoud is gesplitst in titels (filmen of albums) en delen van titels (hoofdstukken of liedjes). Titels bestaan uit cell's die verbonden zijn door een of meerdere Program Chains (PGC's). Een cell is de kleinste eenheid op een DVD. Meestal is een cell gelijk aan een hoofdstuk maar niet altijd. Cell's zijn soms samen gegroepeerd door VOB-ID's. Voorbeelden zijn Warner Brothers films (hoofdfilm heeft een VOB-ID op een laag en een andere op een andere laag), multi-angle films (elke kijkhoek krijgt een eigen VOB-ID) en seamless branching films (verschillende VOB-ID's voor de verschillende delen van de film die geselecteerd zijn om af te spelen bij bepaalde afspeeloptie).

Dit document werd laatst gewijzigd op 9 Oktober 2003.


Vertaald door: Van Vossole