How VOB Containers Handle Multiple Language Tracks

The VOB (Video Object) container handles multiple simultaneous language tracks by utilizing the MPEG-2 Program Stream architecture, where multiple discrete audio streams are broken down into packets and interleaved alongside the video data. Rather than mixing sounds together, the container maintains up to eight distinct, parallel audio streams that run concurrently with the video. DVD players and media software read metadata mapped to these streams, allowing users to switch seamlessly between different spoken languages during playback without interrupting the video stream.

MPEG-2 Program Stream Architecture

At its core, a VOB file is a specialized implementation of the MPEG-2 Program Stream (PS). In an MPEG-2 PS, continuous media feeds—such as video, audio, and subtitles—are encoded separately into Packetized Elementary Streams (PES).

These PES packets are chopped into small, fixed-size chunks (typically 2,048 bytes to match standard DVD sectors) and multiplexed, or interleaved, sequentially on the timeline. Because the packets contain presentation time stamps (PTS), the player can align audio and video buffers precisely, even when reading data for multiple audio channels stored on the same physical disc sector.

Packet Identification and Stream IDs

To differentiate between multiple language tracks within the same file, the VOB container uses specific header identifiers:

By reading these headers, a demultiplexer instantly knows which language or format a specific packet belongs to.

The Role of IFO Metadata Files

A standard VOB file contains the audio streams and their numerical IDs, but it does not inherently store language descriptors (such as "English," "French," or "Director's Commentary").

This descriptive metadata is stored externally in accompanying .IFO (Information) files:

  1. The .IFO file maps the VOB's sub-stream ID (e.g., 0x80) to an ISO 639-1 language code (e.g., en).
  2. When playback begins, the media player reads the .IFO file to populate language selection menus and configure track labels.
  3. If a VOB file is played standalone without its .IFO file, players usually label the tracks generically (e.g., "Audio Track 1," "Audio Track 2") based strictly on the order of the stream IDs.

Real-Time Demultiplexing and Playback

During playback, the decoding hardware or software reads the combined VOB stream from the storage medium. The demultiplexer filters the incoming interleaved packets based on the user's active language selection.

Packets matching the chosen audio stream ID are routed directly to the audio decoder's buffer, while packets belonging to non-selected languages are discarded immediately before processing. Because all audio streams share the same master clock reference (SCR), switching languages simply requires changing the demultiplexer filter to a different stream ID, enabling instant audio changes without disrupting video playback.