Repair Corrupted VOB File Headers Without IFO

When a VOB file is separated from its accompanying IFO file, corrupted pack or system headers can render the video completely unreadable to media players and editing software. This article explains how to inspect, bypass, and reconstruct damaged headers in an orphaned VOB file by aligning stream byte markers, stripping proprietary navigation packs, and remuxing elementary streams into a functional container.

Understanding VOB Header Structure

A VOB (Video Object) file is fundamentally an MPEG-2 Program Stream (PS) containing multiplexed video, audio, and subtitle streams, interspersed with DVD-specific Navigation Packs (NV_PCKs). Standard media players read the IFO file to determine stream layouts, aspect ratios, and chapter markers. Without the IFO, a player relies strictly on the embedded MPEG-2 pack headers (0x000001BA) and system headers (0x000001BB). If these initial bytes are corrupted, missing, or misaligned, the file fails to initialize.

Step 1: Hex Inspection and Header Alignment

Before running automated recovery tools, verify that the file starts with a valid MPEG-2 pack start code.

  1. Open the damaged VOB file in a hex editor (such as HxD, Hex Fiend, or 010 Editor).
  2. Look at the very first four bytes of the file. A healthy MPEG-2 stream begins with: 00 00 01 BA
  3. If the file starts with random bytes, null bytes (00 00 00 00), or text, search forward for the first occurrence of the hex sequence 00 00 01 BA.
  4. Delete all preceding bytes before this sequence so that offset 0x00000000 starts with 00 00 01 BA.
  5. Save the file with a new name. This realignment allows demuxers to identify the initial pack header immediately.

Step 2: Extracting Elementary Streams (Demuxing)

Because VOB files contain private DVD navigation streams (Stream ID 0xBF) that standard MPEG decoders can trip over, the most reliable way to repair the file is to discard the container headers and extract the raw elementary streams.

Tools like DGIndex or ProjectX read raw MPEG packets directly, ignoring broken container-level headers:

  1. Load the realigned VOB file into DGIndex.
  2. If prompted about broken navigation packs or invalid aspect ratios, set the audio track to decode the primary stream (usually AC-3 or PCM).
  3. Set the video output to demux.
  4. Run the process to separate the stream into a clean elementary video file (.m2v) and audio file (.ac3 or .wav).

During this step, the demuxer scans packet by packet, reconstructing PTS (Presentation Time Stamps) and generating standard elementary headers.

Step 3: Remuxing and Rebuilding Container Headers with FFmpeg

Once the stream is demuxed—or if you prefer a command-line solution that ignores errors without manual demuxing—use FFmpeg to build new, compliant headers. FFmpeg can bypass broken stream markers by forcing packet parsing.

Run the following command in your terminal or command prompt:

ffmpeg -err_detect ignore_err -fflags +genpts -i input.vob -c:v copy -c:a copy output.mpg

If the output is intended for modern media players rather than legacy DVD systems, replace output.mpg with output.mkv or output.mp4 to place the raw streams into a more modern container format.

Step 4: Recreating IFO Files for DVD Playback

If the goal is to author a playable DVD structure rather than just recover the video:

  1. Take the recovered .mpg or demuxed .m2v and .ac3 files.
  2. Import them into a DVD authoring tool such as IfoEdit or DVDStyler.
  3. Use the "Create IFOs" function in IfoEdit, pointing to your repaired VOB file.
  4. The tool scans the VOB from start to finish, maps every cell, video title set (VTS), and audio track, and writes fresh VTS_01_0.IFO and VTS_01_0.BUP files.