The Role of Pack Headers in VOB Streams
In a DVD Video Object (VOB) file, the pack header serves as the foundational framing and timing mechanism that organizes multiplexed multimedia data. Acting as the entry point for every 2,048-byte sector in the stream, the pack header provides the vital synchronization metadata and bitrate parameters required for hardware and software decoders to accurately demultiplex and play back interleaved video, audio, and sub-picture streams.
Structural Alignment with DVD Sectors
A VOB stream is built on the MPEG-2 Program Stream (PS)
specification, where data is divided into uniform blocks known as packs.
Each pack is strictly sized at 2,048 bytes to match the physical sector
size of a DVD disc. The pack header marks the absolute beginning of each
sector, beginning with the 4-byte Pack Start Code
(0x000001BA). This consistent boundary allows optical
drives and media players to locate, read, and stream blocks
independently without losing tracking state.
Clock Synchronization via the System Clock Reference
The primary functional component inside the pack header is the System Clock Reference (SCR). The SCR is a 42-bit timestamp (split into a 33-bit base and a 9-bit extension) that represents the exact time the pack data should arrive at the input of the decoder's System Target Decoder (STD).
Because a VOB file contains separate elementary streams for MPEG-2 video, diverse audio formats (such as AC-3, DTS, or LPCM), and sub-pictures, their playback clocks can easily drift. The SCR in the pack header synchronizes the master playback clock of the receiving system, ensuring that downstream Presentation Time Stamps (PTS) and Decoding Time Stamps (DTS) inside the Packetized Elementary Stream (PES) payloads align correctly to prevent audio-video desynchronization.
Data Rate Control and Buffer Management
The pack header contains a 22-bit program multiplex rate
(program_mux_rate) field. This value indicates the maximum
transmission rate at which the pack was multiplexed, measured in units
of 50 bytes per second. Decoders use this data to govern the rate at
which bits enter the decoder buffers, preventing buffer overflow (which
leads to dropped frames) or underflow (which causes playback
stuttering).
Payload Framing and Stuffing
Following the timing and rate parameters, the pack header includes stuffing bytes if necessary. This variable padding allows the multiplexer to ensure that the overall pack—consisting of the pack header, optional system headers, and the PES packet payloads—conforms exactly to the required 2,048-byte sector boundary.
By providing sector identification, continuous clock synchronization, and data rate governance, the pack header functions as the structural backbone that allows a decoder to process interleaved VOB media reliably.