How IFO Files Control VOB Playback Navigation

This article explains the technical relationship between IFO and VOB files in standard DVD-Video architecture. While Video Object (VOB) files contain the actual multiplexed audio, video, and subtitle data, Information (IFO) files act as the navigational roadmap and control system. Without IFO files, a media player cannot interpret chapters, menus, audio track selections, or the intended playback order of the content stored inside the VOB containers.

The Role of VOB and IFO Files

A standard DVD directory (VIDEO_TS) separates content from control data:

Logical Block Addressing and Pointers

Because VOB files are split arbitrarily by file size, a media player cannot rely on file boundaries to determine scenes. The IFO file solves this using Logical Block Addressing (LBA):

  1. VOBUs (Video Object Units): Inside a VOB, data is organized into small chunks called VOBUs, each typically containing 0.4 to 1.0 seconds of content starting with an MPEG I-frame.
  2. Sector Pointers: The IFO file stores explicit byte offsets and sector addresses pointing to the exact start and end of each VOBU, Cell, and Program. When you skip to a specific chapter, the player reads the IFO file to find the exact sector address within the corresponding VOB file and commands the drive to seek directly there.

Program Chains (PGC) and Playback Sequencing

DVD navigation relies on structures called Program Chains (PGCs), which are fully defined inside the IFO:

DVD players feature a built-in virtual machine that executes instructions defined inside IFO files:

Stream Identification and Demultiplexing

A single VOB file can carry up to eight audio streams and 32 subtitle streams multiplexed together. The VOB identifies these streams only by numerical IDs (e.g., Sub-picture Stream 0, Audio Stream 1).

The IFO file provides the essential metadata for these streams:

When a user selects a language, the player references the IFO file to determine which internal stream ID within the VOB file needs to be demultiplexed and decoded.