VOB vs M2TS: Key Architectural Differences
This article examines the core architectural distinctions between DVD Video Object (VOB) files and MPEG-2 Transport Stream (M2TS) containers. While both formats are container specifications developed for optical disc media and digital video playback, they originate from fundamentally different branches of the MPEG-2 systems standard (ISO/IEC 13818-1). The following sections detail their divergence in underlying transport mechanisms, packet structures, multiplexing methods, timing models, and navigation integration.
Fundamental Lineage: Program Stream vs. Transport Stream
The primary architectural distinction between VOB and M2TS lies in their foundational design models:
- VOB (MPEG-2 Program Stream): A VOB file is an extension of the MPEG-2 Program Stream (PS). The Program Stream specification was engineered specifically for reliable, error-free storage environments, such as local hard drives and optical discs (DVD-Video). It combines one or more packetized elementary streams (PES) that share a common time base into a single continuous stream.
- M2TS (MPEG-2 Transport Stream Extension): M2TS is a proprietary implementation of the MPEG-2 Transport Stream (TS), standardized for Blu-ray Disc and AVCHD formats (BDAV/BDMV). Transport Streams were originally designed for lossy environments, such as digital terrestrial and satellite broadcast, where transmission errors and packet loss are common. M2TS adapts this broadcast-oriented, packet-based infrastructure to high-capacity random-access optical media.
Packet Architecture and Sizing
The physical framing of data within the container represents a significant structural departure between the two formats.
VOB Pack (2048 Bytes):
+-------------+---------------+--------------------------------------+
| Pack Header | System Header | PES Packets (Video, Audio, Sub-pic) |
| (14 Bytes) | (Optional) | (Variable Length up to sector limit) |
+-------------+---------------+--------------------------------------+
M2TS Packet (192 Bytes):
+-----------------------+---------------------+----------------------+
| TP_extra_header (ATS) | Standard TS Header | Payload / Adaptation |
| (4 Bytes) | (4 Bytes) | (184 Bytes) |
+-----------------------+---------------------+----------------------+
VOB Packet Structure
- Fixed 2048-Byte Packs: VOB files are aligned to exactly 2048-byte blocks, which matches the physical sector size of standard DVD optical discs.
- Pack Headers and PES Units: Each 2048-byte pack begins with a 14-byte pack header containing a System Clock Reference (SCR). The remainder of the pack consists of a Packetized Elementary Stream (PES) header and the associated elementary stream payload (video, audio, or sub-picture). PES packets can be large and span across these 2048-byte boundaries or be padded to fill the exact sector size.
M2TS Packet Structure
- 192-Byte Aligned Packets: Standard MPEG-2 TS
packets are 188 bytes long. M2TS adds a 4-byte prefix
(
TP_extra_header) to each standard packet, yielding a fixed length of 192 bytes. - Arrival Time Stamp (ATS): The 4-byte prefix contains a 30-bit Arrival Time Stamp and 2 copy-permission indicator bits. The ATS dictates the exact moment the packet must enter the decoder buffer, smoothing jitter caused by variable-bitrate optical read mechanisms.
- Fine-Grained Framing: Because every unit is strictly 192 bytes, the format exhibits high granularity, allowing decoders to quickly resynchronize if data corruption occurs.
Multiplexing and Stream Identification
The mechanisms used to identify and isolate different audio, video, and data tracks differ substantially in complexity:
- VOB Stream IDs and Sub-stream IDs: VOB identifies
elementary streams using 8-bit
stream_idvalues found in PES headers. Standard MPEG streams (video, MPEG audio) have designated IDs. Because the original MPEG-2 PS specification did not natively accommodate private audio standards like Dolby Digital (AC-3) or DTS, VOB wraps these formats inside a shared "Private Stream 1" ID (0xBD) and appends a custom 1-bytesub_stream_idto route the data internally. - M2TS Program Identifiers (PIDs): M2TS uses the
standard TS table architecture. Every 192-byte packet contains a 13-bit
Packet Identifier (PID) in its header. PIDs are mapped via specialized
control tables:
- Program Association Table (PAT): Points to the location of program definitions.
- Program Map Table (PMT): Identifies the exact PIDs assigned to primary video, secondary video (Picture-in-Picture), multiple audio codecs (TrueHD, DTS-HD MA, LPCM), and PGS subtitle streams. This creates a fully scalable and modular multiplexing environment.
Timing and Synchronization Models
Both formats manage audio/video synchronization using presentation and decode timestamps, but their clock references operate differently:
- VOB Timing: Relies on the System Clock Reference (SCR) found in the pack header, running at 27 MHz, coupled with Presentation Time Stamps (PTS) and Decoding Time Stamps (DTS) inside the PES headers. The clock assumes a single program environment with continuous timeline playback, managed via chained program chains (PGCs).
- M2TS Timing: Uses the Program Clock Reference (PCR) carried inside the adaptation field of specific TS packets to synchronize the decoder. Combined with the 4-byte ATS, M2TS provides a dual-layer timing mechanism: ATS manages buffer ingestion rates, while PCR/PTS/DTS manages decoding and display timing. This architecture prevents buffer underflows and overflows when switching between multi-angle feeds or multi-stream branching.
Integration with Navigation Data
How playback commands, chapter marks, and user interactions interact with the stream represents another major architectural divergence:
- VOB Embedded Navigation: VOB multiplexes structural
navigation data directly into the media stream. It uses specialized
packets called Navigation Packs (
NV_PCK) placed at the start of every Video Object Unit (VOBU, typically 0.4 to 1.0 second of video). TheNV_PCKcontains Data Search Information (DSI) and Presentation Control Information (PCI) sectors, which provide forward/backward jump pointers, seamless angle switching addresses, and button highlighting for DVD menus. External.IFOfiles reference these internal pointers. - M2TS Decoupled Navigation: M2TS treats media
streaming and navigational logic as entirely separate layers. An M2TS
file contains strictly media and system clock data. All navigation
logic, random access lookups, and playlist commands are stored in
external database files:
.CLPI(Clip Information): Contains the Sequence and Program Attributes, as well as anEP_map(Entry Point map) that converts PTS timestamps directly to source packet numbers (SPN) inside the.m2tsfile..MPLS(Playlist): Controls the playback order, chapter stops, and seamless connections between different M2TS files.
Architectural Comparison Summary
| Feature | VOB (Video Object) | M2TS (BDAV Transport Stream) |
|---|---|---|
| Underlying Base | MPEG-2 Program Stream (PS) | MPEG-2 Transport Stream (TS) |
| Packet Size | 2048 bytes (Sector-matched) | 192 bytes (188-byte TS + 4-byte ATS) |
| Target Media Reliability | High (Assumes error-free storage) | Variable / Lossy (Inherits broadcast robustness) |
| Stream Identification | 8-bit stream_id + Sub-stream
IDs |
13-bit Packet Identifier (PID) via PMT/PAT |
| Buffer Control | System Clock Reference (SCR) | Arrival Time Stamp (ATS) + PCR |
| Navigation Metadata | Interleaved internally
(NV_PCK / VOBU) |
Externalized (.CLPI EP_map,
.MPLS playlists) |
| Native Codec Scope | MPEG-1/2 Video; LPCM, AC-3, DTS | MPEG-2, AVC/H.264, VC-1, HEVC/H.265; HD Audio |