DVD VOB Private Stream Header Sub-Stream ID Explained

In a DVD Video Object (VOB) file, the sub-stream ID located inside a private stream header acts as a secondary demultiplexing identifier that specifies the exact codec and track number of non-MPEG audio or subtitle data. Because standard MPEG-2 Program Streams do not natively define stream types for formats like AC-3, DTS, LPCM, or DVD subpictures, DVD authoring bundles these tracks under Private Stream 1 (0xBD). This article explains how the sub-stream ID operates within this architecture to ensure media players route and decode the correct stream.

Overcoming MPEG-2 Limitations

Standard MPEG-2 Program Streams assign unique Packetized Elementary Stream (PES) stream IDs for basic video and MPEG-1/2 audio (such as 0x1E0 for video and 0x1C00x1DF for MPEG audio). However, the MPEG-2 specification lacked built-in identifiers for newer or proprietary formats used on commercial DVDs, including Dolby Digital (AC-3), DTS, Linear PCM, and DVD subpictures.

To maintain compliance with the MPEG-2 standard while supporting these formats, DVD specifications multiplex all such data into Private Stream 1 (stream ID 0xBD). Because multiple distinct tracks (such as multiple audio languages and subtitle tracks) share this single MPEG stream ID, an additional layer of identification is required.

The Function of the Sub-Stream ID

The sub-stream ID is an 8-bit byte located at the beginning of the PES packet payload in Private Stream 1. Its primary functions include:

  1. Format Identification: It informs the demultiplexer whether the enclosed packet contains AC-3, DTS, LPCM, or subpicture (bitmap subtitle/menu) data.
  2. Channel/Track Routing: It designates the specific track index (e.g., Audio Track 1 vs. Audio Track 2, or Subtitle Track 1 vs. Subtitle Track 3).
  3. Payload Demultiplexing: Media players use the sub-stream ID to extract and send only the user-selected audio track or subtitle stream to the appropriate decoder buffer while discarding the rest.

Common Sub-Stream ID Values

The DVD standard establishes specific hex ranges for the sub-stream ID:

Header Structure Context

When a DVD demuxer encounters a PES packet with the ID 0xBD, it skips the standard PES header and immediately reads the private stream header. Following the sub-stream ID, the header often contains an offset pointer or frame metadata (such as the number of frames or audio emphasis flags for LPCM). Once parsed, the player strips this secondary header information and forwards the raw elementary stream payload to the appropriate hardware or software decoder.