Causes of PTS Discontinuity When Splicing VOB Files
A Presentation Time Stamp (PTS) discontinuity error occurs when splicing distinct VOB (Video Object) files because each file contains its own independent, non-continuous timing metadata. When two separate MPEG-2 Program Streams are merged without recalculating these internal timestamps, the playback engine encounters unexpected jumps, resets, or gaps in the timebase. This article explains the technical mechanics behind PTS discontinuities during VOB concatenation, detailing how clock resets, packet dependencies, and container specifications trigger playback failures.
Independent Timebases and Timestamp Resets
VOB files are specialized MPEG-2 Program Streams commonly used on DVD-Video media. Each independent VOB file or DVD cell maintains its own Presentation Time Stamp (PTS) and Decoding Time Stamp (DTS) timeline.
When a VOB file is authored, its PTS typically starts at an arbitrary
offset or resets to zero. When you append a second VOB file directly
onto the first using basic binary concatenation (such as the
command-line copy or cat commands), the PTS
does not smoothly increment. Instead, the timestamp suddenly drops from
the ending time of the first file (e.g., 00:45:00.000) back to the
starting timestamp of the second file (e.g., 00:00:00.000). Decoders
expect monotonically increasing timestamps to display frames
sequentially; a sudden regression triggers a critical discontinuity
error.
System Clock Reference (SCR) Mismatches
MPEG Program Streams rely on the System Clock Reference (SCR) stored in pack headers to synchronize the decoder’s System Time Clock (STC).
In standard DVD authoring, a change in STC is explicitly declared using DVD navigation files (IFO files) or specific sequence end codes and pack flags. Splicing raw VOB files preserves the original, unadjusted SCR values. When the decoder encounters a new SCR stream that does not align with the rate of the preceding packets, the internal buffer models (Video Buffer Verifier or VBV) fail, leading to buffer underflows, freezes, or immediate decoder halts.
Open GOP Structures and Inter-Frame Dependencies
VOB video tracks use Groups of Pictures (GOPs). Unless authored as strictly "closed" GOPs, the leading frames of a second VOB file may rely on bidirectional predictive frames (B-frames) that require reference data from preceding P-frames or I-frames.
When two distinct VOB streams are joined without re-indexing:
- The decoder attempts to reference frames that do not exist across the splice boundary.
- Decoding Time Stamps (DTS) and Presentation Time Stamps (PTS) fall out of alignment because the decode order no longer matches the display order.
- The missing reference packets cause corrupted frame reconstruction and invalidate subsequent timestamp calculations.
Audio and Video Packet Boundary Misalignment
Within a VOB container, elementary audio (often AC-3, PCM, or DTS) and video (MPEG-2) streams are multiplexed into fixed 2048-byte sectors. Audio frames and video frames do not share the exact same duration or packet boundaries.
At the exact cut point of a raw splice:
- The video stream might end halfway through a GOP.
- The audio stream might end mid-frame.
- The final audio PTS rarely matches the final video PTS perfectly.
When the second file begins, the slight difference between audio and video starting offsets creates an immediate relative desynchronization. Media players encountering this mismatch register a PTS discontinuity to signal that the audio and video clocks must be realigned.
Resolving the Discontinuity
Because a VOB file is a delivery container rather than an editing format, fixing PTS discontinuities requires demultiplexing (demuxing) the elementary streams, recalculating monotonic timestamps across the combined length, and remultiplexing (remuxing) the streams into a modern container like MKV or MP4, or using specialized tools that recalculate standard DVD MPEG-2 packet headers.