How Media Players Read Language Tags in VOB Files
This article explains how media players identify and differentiate language tags assigned to audio tracks in VOB (Video Object) files. Because standard DVD-Video VOB containers are based on the MPEG-2 Program Stream format, they do not store human-readable language descriptors directly within their audio streams. Instead, players rely on a combination of packet-level identifiers inside the VOB and external metadata stored within associated IFO (Information) files to match each audio track with its corresponding language.
The Role of MPEG-2 Program Streams and Stream IDs
At the container level, a VOB file is an MPEG-2 Program Stream multiplexed with video, audio, and sub-picture (subtitle) data. Media players separate these components by reading Packetized Elementary Stream (PES) headers.
Each audio format within a VOB is assigned a specific Stream ID or Substream ID:
- MPEG-1 / MPEG-2 Audio: Uses stream IDs ranging from
0xC0to0xDF. - AC-3 (Dolby Digital): Multiplexed into Private
Stream 1 (
0xBD) using substream IDs ranging from0x80to0x87. - DTS: Multiplexed into Private Stream 1
(
0xBD) using substream IDs ranging from0x88to0x8F. - LPCM: Multiplexed into Private Stream 1
(
0xBD) using substream IDs ranging from0xA0to0xA7.
These IDs allow the player's demuxer to isolate up to eight individual audio streams, but they only define the track index and technical format, not the language.
Metadata Association via IFO Files
Standard DVD authoring decouples stream data from stream metadata. To
display language tags such as "English," "Spanish," or "French," media
players read the DVD's control files, specifically
VIDEO_TS.IFO or title-specific files like
VTS_01_0.IFO.
- Reading Audio Attributes: The player parses the
Video Title Set Audio Stream Attribute table (
VTS_AST_ATRT) within the IFO file. - Extracting Language Codes: For each available
stream index (0 through 7), the table defines attributes including audio
coding mode, channel count, and a two-character ISO 639-1 language code
(e.g.,
en,es,ja). - Mapping Stream to Metadata: When playback starts,
the media player matches the VOB packet's Substream ID (such as
0x80for Track 1) to Audio Stream Index 0 in the IFO table. - Displaying the Tag: The player translates the ISO 639 code into the human-readable language label shown in the audio selection menu.
Playback Without IFO Files
When a VOB file is played independently outside of its complete DVD directory structure, the media player cannot access the IFO metadata. Because the MPEG-2 Program Stream headers inside standard VOBs do not carry ISO 639 language descriptor tags—unlike MPEG Transport Streams (MPEG-TS) or modern containers like MKV and MP4—the player has no direct way to identify the spoken language.
In this scenario, the media player differentiates the tracks strictly by their stream position and codec parameters. The player will typically label the tracks generically based on their physical order in the stream (e.g., "Audio Track 1 [AC-3 5.1ch]", "Audio Track 2 [AC-3 2.0ch]") without language identification.