VOB File Documentation
Summary
A .vob file is a DVD Video Object file: the container that holds a DVD-Video disc’s actual video, audio and subtitles. Technically it is an MPEG-2 Program Stream, so it begins with the pack-start code 00 00 01 BA; its MIME type is video/mpeg. VOB files live in the disc’s VIDEO_TS folder beside .ifo navigation and .bup backup files, and the DVD spec caps each at 1 GB, so long titles are split across several VOBs.
Technical details
| Feature | Value |
|---|---|
| Full name | DVD Video Object file |
| File extension | .vob |
| MIME type | video/mpeg |
| Format type | MPEG-2 Program Stream (multiplexed video, audio, subpicture, navigation) |
| Developer | DVD Forum (DVD-Video specification) |
| Introduced | 1996 (DVD-Video specification) |
| Open standard | No; DVD-Video spec is licensed |
| Magic number | 00 00 01 BA (MPEG-2 pack-start code) at offset 0 |
| Byte order | Big-endian (MPEG start codes and fields) |
| Pack / sector size | 2048 bytes; one DVD sector equals one pack |
| Maximum file size | 1 GB per VOB (spec limit); titles split across files |
| Video codec | MPEG-2 (occasionally MPEG-1) |
| Audio codecs | AC-3 (Dolby Digital), DTS, MPEG audio, LPCM |
| Subtitles | Bitmap subpicture streams (one per language) |
| Navigation | NAV packs (PCI + DSI) in private stream 2 |
| Companion files | .ifo (navigation), .bup (backup of the IFO) |
| Location on disc | VIDEO_TS folder (e.g. VTS_01_1.VOB) |
| Related extensions | .ifo, .bup, .mpg, .dat, .vro |
What is a VOB file?
VOB stands for Video Object, the container that stores the playable content of a DVD-Video disc as defined by the DVD-Video specification the DVD Forum published in 1996. A .vob file is technically an MPEG-2 Program Stream: it multiplexes MPEG-2 video, one or more audio tracks, bitmap subtitles and navigation data into a single interleaved byte stream. Every .vob begins with the MPEG pack-start code 00 00 01 BA, the same header used by any MPEG program stream, which is why the DVD folder context, not the bytes, is what really identifies the file.
VOB files live in the VIDEO_TS folder of a DVD. VIDEO_TS.VOB holds the first-play and top menu video; the main feature is stored in VTS_01_1.VOB, VTS_01_2.VOB and so on. A VOB never stands alone: each title set pairs its VOBs with an IFO file that holds the navigation (menus, chapters, language tracks) and a BUP file that is an exact backup of the IFO. The sections below explain how the program stream is packed, why the files are split at 1 GB, and how the navigation data threads through the video.
The 2048-byte pack: sectors and stream multiplexing
A DVD is read in 2048-byte sectors, and the DVD-Video spec makes one sector equal exactly one MPEG pack. So a VOB is a chain of 2048-byte packs, each starting with a pack header whose first four bytes are 00 00 01 BA. This fixed alignment is deliberate: because every pack is one sector, a player can seek to any point in the stream by sector number without parsing forward from the beginning.
pack (2048 bytes) = pack_header + one PES packet
00 00 01 BA pack_start_code
<system clock reference (SCR), 6 bytes, MPEG-2 form>
<program mux rate, 3 bytes>
<stuffing>
00 00 01 <stream_id> PES packet start
stream_id = E0..EF video stream
stream_id = C0..DF MPEG audio stream
stream_id = BD private_stream_1 (AC-3, DTS, LPCM, subpicture)
stream_id = BF private_stream_2 (DVD navigation: PCI, DSI)
Inside each pack sits a single PES (Packetized Elementary Stream) packet, and its stream_id byte says what kind of data the pack carries. DVD puts Dolby Digital (AC-3), DTS and LPCM audio, and the bitmap subtitle streams, all under private_stream_1 (0xBD), using a sub-stream byte at the start of the payload to tell them apart. The picture is MPEG-2 video under stream IDs 0xE0–0xEF. Because the streams are interleaved pack by pack, a player reads roughly sequentially and feeds the right decoder from each pack.
NAV packs: PCI and DSI navigation woven into the video
What separates a DVD VOB from a plain MPEG file is the navigation data carried inline. The stream is divided into Video Object Units (VOBUs), each holding roughly half a second of playback, and every VOBU begins with a NAV pack on private_stream_2 (0xBF). A NAV pack contains two fixed-length structures:
| Structure | Full name | Purpose |
|---|---|---|
| PCI | Presentation Control Information | Timing and highlight data for this VOBU: when to show things, button/menu highlight geometry |
| DSI | Data Search Information | Seek and playback pointers: sector addresses of nearby VOBUs for fast-forward, rewind and angle switching |
The DSI is what makes trick play work: it records the sector offsets of surrounding VOBUs, so a player can jump forward or backward by whole units without scanning the whole file. The PCI carries the highlight information that lights up a menu button when you press a direction key. This in-stream navigation is why the separate IFO file and the VOB cooperate: the IFO holds the disc-level map of titles and chapters, while the NAV packs inside the VOB provide the fine-grained, per-VOBU seek and highlight data.
The 1 GB split and seamless playback
The DVD-Video spec caps each VOB file at 1 GB (1,073,741,824 bytes). This was a filesystem-era constraint of the UDF/ISO 9660 bridge format DVDs use, and it is why a single feature is spread across VTS_01_1.VOB, VTS_01_2.VOB, VTS_01_3.VOB and so on. The split happens at a VOBU boundary, so the files are designed to play back-to-back with no visible seam; the player simply opens the next file when it reaches the end of the current one. This is the direct cause of the common complaint that “my VOB only plays part of the movie”: opening one VTS_01_2.VOB in isolation gives you only that 1 GB slice. Pointing a player at the whole VIDEO_TS folder, or letting a tool read the title through the IFO, joins the parts in order.
VOB as an MPEG-2 program stream: remux versus re-encode
Because a VOB is an MPEG-2 program stream, converting it splits into two very different operations. Rewrapping to .mpg is essentially free: the underlying bytes are already an MPEG-2 PS, so a stream copy (ffmpeg -i VTS_01_1.VOB -c copy out.mpg) or even a rename often works, though it drops the DVD navigation and may not carry every audio and subtitle track cleanly. Converting to MP4, by contrast, usually means re-encoding: MPEG-2 video is transcoded to H.264 to shrink the large DVD bitrate into a phone-friendly file. HandBrake pointed at the VIDEO_TS folder reads the IFO, picks the main title, and joins the split VOBs; MKV is the better target when you want to keep several audio and subtitle tracks, which MakeMKV can remux losslessly from the MPEG-2. The subpicture subtitles are bitmap overlays, not text, so they survive as image tracks rather than editable captions.
CSS encryption on commercial discs
VOBs from commercial, pressed DVDs are frequently scrambled with the Content Scramble System (CSS), a weak stream cipher whose keys are stored on the disc’s lead-in area, outside the VOB files themselves. A CSS-protected VOB copied to a hard drive without its keys decodes to noise, which is why a raw file-copy of a rental disc will not play. Home-recorded and unprotected discs carry no CSS and copy freely. Beyond the technical hurdle, circumventing CSS to copy or convert a commercial disc is restricted by copy-protection law in many countries; that legal point, rather than any weakness in the format, is the real caveat when converting shop-bought DVDs.
FAQ
Why does my VOB file only play part of the movie?
The DVD spec caps each VOB at 1 GB, so a long title is split into VTS_01_1.VOB, VTS_01_2.VOB and so on. Play them in order, open the whole VIDEO_TS folder, or let a converter join them by reading the title through the IFO.
What is the difference between VOB, IFO and BUP files?
The VOB holds the actual video, audio and subtitle streams. The IFO holds the navigation: menus, chapters and language tracks. The BUP is a byte-for-byte backup of the IFO in case it is damaged. Keep all three together to play a disc with menus.
Can I just rename a VOB to .mpg?
Often yes, because a VOB is already an MPEG-2 program stream, so many players and editors will open it. You lose the DVD navigation and multiple-track handling can be imperfect, so re-muxing with a tool that understands the DVD structure is more reliable than a bare rename.
References
- MPUCoder — DVD-Video VOB / IFO file structure reference
- VideoLAN — VLC media player (DVD/VOB playback)
- HandBrake — open-source video transcoder
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.