IFO File Documentation
Summary
An IFO file is the navigation map of a DVD-Video Information File, the small binary file a DVD player reads first to learn a disc’s menus, chapter points, titles, and audio and subtitle maps. It holds no video: the picture lives in the .vob files beside it in the VIDEO_TS folder, with a .bup backup of each IFO. MIME type is application/octet-stream, extension .ifo.
Technical details
| Feature | Value |
|---|---|
| Full name | DVD-Video Information File |
| File extension | .ifo |
| MIME type | application/octet-stream |
| Format type | Binary DVD navigation / metadata file |
| Developer | DVD Forum — DVD-Video specification |
| Introduced | 1996 |
| Byte order | Big-endian |
| Sector size | 2048-byte logical sectors (addresses counted in sectors) |
| Magic number | 44 56 44 56 49 44 45 4F 2D 56 4D 47 "DVDVIDEO-VMG", or 44 56 44 56 49 44 45 4F 2D 56 54 53 "DVDVIDEO-VTS" |
| Two kinds | VIDEO_TS.IFO = Video Manager (VMG); VTS_xx_0.IFO = Video Title Set (VTS) |
| Contains video | No — navigation and metadata only |
| Stores | Menus, chapter and cell pointers, titles, audio and subtitle maps |
| Backup file | .bup — a byte-for-byte identical copy of each IFO |
| Companion file | .vob holds the multiplexed video, audio, and subpicture |
| Location | VIDEO_TS folder on the disc |
| Open standard | No |
| Related extensions | .vob, .bup, .dvd |
What is an IFO file?
IFO is short for “information”. It is the navigation file of a DVD-Video disc, defined by the DVD-Video specification that the DVD Forum published in 1996. An IFO holds no video and no audio of its own. Instead it is the map a player reads first: it describes the disc’s menus, its titles, the chapter points inside each title, and which audio languages and subtitle tracks exist and where their data sits. When you put a DVD in a player, the drive opens VIDEO_TS.IFO before anything else, works out the disc layout from it, and only then starts pulling picture from the video files.
Because the IFO is pure structure, opening one on its own shows no film. That is the usual point of confusion: people rip a DVD, see a small .ifo next to some large files, double-click it, and get nothing playable. The correct mental model is that an IFO is one third of a set. It has to be read together with the files it points at.
The VIDEO_TS trio: VOB, IFO and BUP
Every DVD-Video disc keeps its content in a folder named VIDEO_TS. Three file types cooperate inside it. The VOB files carry the actual content: MPEG-2 video, one or more audio tracks, and subpicture (subtitle) streams, all multiplexed into one program stream. The IFO files carry the navigation data that indexes those VOBs. The BUP files are backups: each BUP is a byte-for-byte copy of its matching IFO, written to a different part of the disc so a scratch does not take out both.
A typical single-title disc looks like this:
VIDEO_TS/
VIDEO_TS.IFO navigation for the whole disc (Video Manager)
VIDEO_TS.BUP backup copy of VIDEO_TS.IFO
VIDEO_TS.VOB the disc-level (first-play / top) menu video, if present
VTS_01_0.IFO navigation for title set 1
VTS_01_0.BUP backup copy of VTS_01_0.IFO
VTS_01_0.VOB the menu video for title set 1
VTS_01_1.VOB the feature video (split into 1 GB pieces)
VTS_01_2.VOB
VTS_01_3.VOB
Note the naming. The IFO and its BUP always end in _0 for a title set. The video files split at 1 GB (a limit inherited from the disc file system), which is why a two-hour film arrives as VTS_01_1.VOB, VTS_01_2.VOB and so on. The IFO ties those pieces back into one continuous title.
Two kinds of IFO and their signatures
There are exactly two kinds of IFO on a disc, and you can tell them apart by their first bytes. The disc-level file, VIDEO_TS.IFO, is the Video Manager (VMG). It opens with the ASCII string DVDVIDEO-VMG, hex 44 56 44 56 49 44 45 4F 2D 56 4D 47, at offset 0. It describes the disc as a whole: the first-play behaviour, the top menu, and a table that maps every title on the disc to the title set that contains it.
The per-title files, VTS_01_0.IFO, VTS_02_0.IFO and up, are Video Title Sets (VTS). Each opens with DVDVIDEO-VTS, hex 44 56 44 56 49 44 45 4F 2D 56 54 53, at offset 0. A VTS IFO describes one group of related titles: its chapters, its program chains, its own menu, and the address maps that point into that set’s VOBs. The matching .BUP shares the same signature because it is a copy of the same bytes.
Two structural facts hold for both kinds. Multi-byte values inside an IFO are stored big-endian (most significant byte first). And addresses to data are counted in 2048-byte logical sectors, not in raw byte offsets, which matches the DVD sector size. A pointer that reads sector 7 means byte 7 × 2048 from the start of the relevant region.
The management and attribute table (VMGI_MAT / VTSI_MAT)
Each IFO begins with a header table of sector-offset pointers. In the Video Manager it is the VMGI_MAT (Video Manager Information Management/Attribute Table); in a title set it is the VTSI_MAT. This table is the spine of the file. It holds the identifier string you saw in the signature, the last sector of the IFO, the last sector of the IFO plus its BUP region, a version and category field, and video, audio, and subpicture attribute fields for the menus and titles it governs.
The rest of the MAT is a list of sector offsets, each pointing to one sub-table further inside the file. Reading an IFO means reading the MAT, following a pointer to the sub-table you need, and parsing that table in place. Conceptually:
VTS_01_0.IFO
+-- VTSI_MAT (header table of sector-offset pointers)
|-- -> VTS_PTT_SRPT chapter / part-of-title search
|-- -> VTS_PGCIT the title's program chains
|-- -> VTSM_PGCI_UT menu program chains, per language unit
|-- -> VTS_C_ADT cell address table
+-- -> VTS_VOBU_ADMAP VOBU address map
The offsets in the MAT are sector counts relative to the start of the information region, and the values inside each sub-table are big-endian. The exact byte positions of individual MAT fields are fixed by the spec, but the model to hold onto is simpler: a small header of pointers, each leading to a named sub-table.
The Video Manager tables
VIDEO_TS.IFO is where a player starts. Its MAT points to the disc-wide tables below.
| Table | What it holds |
|---|---|
FP_PGC | First Play program chain: the navigation commands run the moment the disc loads (jump to the top menu, or straight into a title). |
TT_SRPT | Title search pointer table: the map from each title number to the title set (VTS) and program chain that plays it. |
VMGM_PGCI_UT | Video Manager menu program chain information, organised into language units so the top menu can differ per language. |
VMG_PTL_MAIT | Parental management table: rating levels per country used to block or allow titles. |
VMGM_C_ADT | Cell address table for the disc-level menu: maps menu cells to sectors in the menu VOB. |
VMGM_VOBU_ADMAP | VOBU address map for the menu: the sorted list of VOBU start sectors for seeking within the menu. |
TT_SRPT is the one that answers “which file plays title 3?”. It turns a title number into a VTS and a program chain, so the player knows which VTS_xx_0.IFO to open next.
The Video Title Set tables
Once the player knows which title set to enter, it opens that set’s IFO and follows the VTSI_MAT to these tables.
| Table | What it holds |
|---|---|
VTS_PTT_SRPT | Part-of-title search pointer table: the chapter list. Each PTT entry names the program chain and program that a chapter begins at. |
VTS_PGCIT | The VTS program chain information table: the program chains for the actual titles, the main navigation content of the set. |
VTSM_PGCI_UT | Menu program chains for this title set, again split into language units. |
VTS_C_ADT | Cell address table: maps each cell ID to its start and end sector in the title VOBs. |
VTS_VOBU_ADMAP | VOBU address map: the ordered table of every VOBU start sector, used to resolve a time or chapter to a byte position for seeking. |
The two address tables are what make random access work. A VOBU (Video Object Unit) is the smallest independently seekable chunk of a VOB, roughly half a second of playback. VTS_VOBU_ADMAP lists their start sectors in order, so the player can binary-search it to jump to any point in the title.
The Program Chain (PGC)
The Program Chain, or PGC, is the core navigation unit inside these tables. A PGC is not a stream. It is a set of instructions and pointers that describes how to play a stretch of content. Each PGC holds several things together:
PGC
navigation commands (pre, cell, and post VM commands: jumps, register tests)
program map (which cells make up each program)
cell playback table (order, still time, and the sector range of every cell)
subpicture CLUT (16-entry colour lookup table for subtitles/buttons)
audio control (which audio streams are available and their attributes)
subpicture control (which subtitle streams are available)
The navigation commands are little VM instructions the player runs before a chain, between cells, and after it finishes: things like “jump to menu”, “set the audio register”, or “if this button was pressed, go there”. The CLUT is a 16-entry colour lookup table; DVD subpictures store only a 2-bit index per pixel, and the CLUT turns those indices into the colours you see, which is how menu highlights and subtitle colours are defined.
The program and cell map is where navigation meets the picture. A cell names a sector range in the VOB; the cell address table (VTS_C_ADT) and the VOBU address map resolve that into concrete disc sectors. Chapters ride on top of this: a “part of title” (PTT) in VTS_PTT_SRPT points at a program within a PGC, and that program points at its first cell. So pressing “next chapter” is a lookup, PTT → program → cell → VOBU start sector, and then a seek into the VOB. Menus resolve the same way: a button’s command jumps to a PGC, whose cells point at the menu VOB. A fuller field-level breakdown of these tables is documented in the mpucoder DVD reference.
IFO and BUP redundancy
The DVD-Video spec mandates that every IFO has a matching BUP, and that the BUP is a byte-for-byte copy written to a separate region of the disc. The reason is physical: a scratch or bad sector that makes part of an IFO unreadable would otherwise break navigation for the whole disc, even though every VOB was fine. A compliant player that hits an unreadable IFO sector silently falls back to the matching .BUP and keeps going. This is why the backup exists and why it looks identical.
The same rule gives a legitimate repair trick. If a ripped disc has a damaged VTS_01_0.IFO but an intact VTS_01_0.BUP, copying the BUP over the IFO (renaming the good backup into place) restores navigation, because the two are meant to be identical. It is not a hack, it is using the redundancy the spec built in.
Frequently asked questions
Why does the .BUP look identical to the .IFO?
Because it is a copy. The DVD-Video spec requires each IFO to be duplicated byte-for-byte into a BUP file on a different part of the disc. If the player cannot read an IFO sector, it reads the BUP instead, so navigation survives a scratch that hits one copy.
Where are the actual chapters stored?
In the title set IFO, not the VOB. Chapters are “parts of title” listed in VTS_PTT_SRPT. Each entry points at a program inside a program chain, which points at a cell, which the address maps resolve to a start sector in the VOB. Remove or corrupt the IFO and the video is still there, but the chapter marks and menus are gone.
References
- mpucoder — DVD-Video file structure and IFO/PGC reference
- dvd.sourceforge.net — DVD-Video Information (IFO field tables)
- VideoLAN — VLC media player (opens VIDEO_TS and .IFO)
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.