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.
- Open the damaged VOB file in a hex editor (such as HxD, Hex Fiend, or 010 Editor).
- Look at the very first four bytes of the file. A healthy MPEG-2
stream begins with:
00 00 01 BA - If the file starts with random bytes, null bytes
(
00 00 00 00), or text, search forward for the first occurrence of the hex sequence00 00 01 BA. - Delete all preceding bytes before this sequence so that offset
0x00000000starts with00 00 01 BA. - 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:
- Load the realigned VOB file into DGIndex.
- If prompted about broken navigation packs or invalid aspect ratios, set the audio track to decode the primary stream (usually AC-3 or PCM).
- Set the video output to demux.
- Run the process to separate the stream into a clean elementary video
file (
.m2v) and audio file (.ac3or.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-err_detect ignore_err: Forces the decoder to skip corrupted bytes and headers rather than terminating the process.-fflags +genpts: Regenerates presentation timestamps to prevent audio/video desynchronization caused by missing timing headers.-c:v copy -c:a copy: Stream-copies the original video and audio without re-encoding, preserving the original quality.
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:
- Take the recovered
.mpgor demuxed.m2vand.ac3files. - Import them into a DVD authoring tool such as IfoEdit or DVDStyler.
- Use the "Create IFOs" function in IfoEdit, pointing to your repaired VOB file.
- 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.IFOandVTS_01_0.BUPfiles.