What's on a DVD?

What exactly is on a DVD disc? What are VOB, IFO and BUP files? All this will be explained here.

When you access the DVD drive you'll see at least 2 directories:

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

AUDIO_TS is used for DVD Audio and contains the audio files, whereas VIDEO_TS is used to store all data for the movie. There might be more directories which contain DVD-ROM features for your PC.

Now let's have a look at the VIDEO_TS directory:

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

As you can see there's 3 types of files on a DVD: .VOB, .IFO and .BUP:

VOBs - Video OBjects

A VOB contains several streams multiplexed together: Video, Audio and Subtitles. Video is MPEG-2, audio can be AC-3, Linear PCM, Mpeg 2 multichannel or MPEG1 layer2 2 channel audio. AC3 is pretty much the standard and MPEG-2 multichannel can only be found on very few discs (one example is "In the line of fire, PAL edition") as this format was initially considered to be the standard format in Region2 (Europe and Japan) but was later dropped. PCM is mostly found on music DVDs and MP2 on cheaper productions. PCM is high quality uncompressed audio which takes a lot of space, hence it's not an ideal choice for full length movies with extras and possibly multiple languages. AC3 streams have a bitrate between 192 and 448kbit/s. 192kbit/s is used for 2 channel sound, and 384-448kbit/s for 5.1channel surround.

A VOB can contain one main video stream and several multiangle streams, allowing you to switch (as an example) the perspective during the movie. This feature is mostly used to display storyboards or other extra features during playback. The maximum bitrate of the video stream is 9.8mbit/s. Together, video and audio stream must be below 10mbit/s at any given moment. It's possible to have up to 9 different audio streams and you can usually switch the audio stream during playback (this feature can be disabled during the authoring phase of a DVD). It's also possible to have up to 32 different subtitle streams. Subtitles are 4 color bitmaps which are overlayed over the video stream, they're usually not encoded into the video stream.

Let's have a closer look at a VOB using our old favorite vStrip:

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]

As said before there's usually just one video stream and it always has ID 0xE0. PTS is the Program Time Stamp and states when a certain stream starts with respect to the beginning of the VOB. As you can see the resolution is 720x480 so it's an NTSC DVD. The frame-rate of 29.97 basically states the same fact. The DAR of the stream is 16:9. Then there's 4 audio streams: 0x80 - 0x83. Note that these are AC3 streams. All AC3 streams are in stream 0xBD, substreams 0x8x. When there's a DTS stream it usually has stream id 0xBD 0x88 or 0xBD 0x89. PCM streams are also located in stream 0xBD, they have stream IDs 0xAx, from 0xA0 up to 0xA9. MP2 audio finally is located in the stream 0xCx. Here's an example from a PCM and MP2 stream:

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

There are also 2 substreams, 0x20 and 0x21. All subtitle streams are located in the 0xBD stream as well.

Furthermore there are usually padding streams (0xBE) but they don't concern us.

You might also have noticed the VOB and Cell IDs. A Cell is the smallest unit on a DVD. On a simple DVD this usually represents a chapter but it gets more complicated in many discs. If you're interested about Cells on a DVD I suggest you start learning how to use Scenarist, because only then will you truly understand how these works. When it comes to VOB IDs I still haven't found how they are created exactly and to what kind of structure they correspond. Usually each unit on its own has its own VOB ID, for instance the main movie and the trailer. In multiangle and seamless branching titles each angle has its own VOB ID.

IFOs - InFOrmation

IFO Files give the player important navigational information, like where a chapter starts, where a certain audio or subtitle stream is located, etc. This is the reason why it's only possible to rip certain parts of a movie (like a chapter) with a ripper which can read this files.

Or old friend vStrip can and let's have a glimpse at the output we get when using ifo parsing (sample command line: 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...

As you can see there's 2 PGCs or ProGram Chains in this movie. PGC 0 represents the main movie whereas PGC 1 the studio logo at the beginning. This structure might be a lot more complicated but usually it's as easy as shown above. Multiangle movies will give you several PGCs having the same length, and seamless branching movies several PGC with different length. By selecting the right PGC you can get the right version of the movie. Also.. the PGC corresponds to the Title number being displayed in your player. Here's just an example (Matrix - follow the white rabbit feature = Title 6 or in other words PGC 5 since the PC starts counting at 0 internally).

Last but not least IFO files are not encrypted.

BUPs - BackUP

BUP files are just backup files off the IFOs. As their counterparts they are not encrypted.

Look closer

Now that we know what each filetype is for let's look at the actual example again:

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

The VIDEO_TS.* files represent the first play item. This is an item being set during authoring and is the first thing being played when the disc is inserted in the player. Usually this is just a copyright notice, but it could also be a menu where to select the language of the menu, some trailers, etc. The video_ts.vob contains the video and audio data, the video_ts.ifo the navigational data and video_ts.bup is the backup for video_ts.ifo.

There's 2 more ifo files: vts_01_0.ifo and vts_02_0.ifo. The first 2 numbers in the name tell the title number. vts_01_* is title 1, vts_02_* title 2, etc. Obviously there can be 99 titles at the maximum (vts_00_* does not exist). Each title can have 10 VOB files, whereas the first VOB (vts_XX_0.vob) always contains the menu for that title. Each title has at least 2 VOBs (one for the menu and one for the main feature) and exactly one ifo and bup file.

In our case title 1 contains the behind the scenes featurette and has its own menu. Title 2 contains the main movie, also with its own menu.

As you can see the maximum size of a VOB file is 1GB. In fact the files must be smaller than or exactly one GB (1024x1024x1024Bytes), but there are certain which aren't and these can't be played on a PC.

Now the last question: how to locate the main movie on a disc? The largest .ifo file will give you the title number and then you need all the VOB files except for the menu VOB (unless you want the menu as well, of course). Most Rippers (if they don't do ifo parsing) proceed according to this rule to select the main movie and the ifo to be copied.

Inside a VOB

DVD video content is broken into titles (movies or albums) and parts of titles (chapters or songs). Titles are made up of cells linked together by one or more Program Chains (PGCs). A cell is the smallest video unit on a DVD. Often a cell is equal to a chapter but not always. Cells are sometimes grouped together using VOB IDs. Examples are Warner Brothers movies where the main movie has one VOB ID on one layer and another one on another layer, multiangle movies (at the branching points each angle gets its own VOB ID, and then when they get back together we have the next VOB ID, etc., and seamless branching movies - where we have different VOB IDs for the different parts of movies that are selected to play when selecting a certain playback option).

This document was last updated on October 9, 2003