GENERAL DESCRIPTION

Scope

VobBlanker is a tool able to blank, replace, cut and strip titles, more specifically, program chains in titles and menu domains. It is also able to work in cell based mode, doing different actions (blanking, replacing, reducing to still, split) in a cell by cell mode.

VobBlanker is FREE and open source SW.

 

Disclaimer

VobBlanker is strictly an editing tool, designed to be applied in unprotected and no-copyrighted sources. It has nothing to do with ripping or protection removing practices .

 

Homepage

mirror 1: http://jsoto.posunplugged.com/vobblanker.htm

mirror 2: http://download.videohelp.com/jsoto/vobblanker.htm

 

Guides

Guides available at:

mirror 1: http://jsoto.posunplugged.com/guides.htm

mirror 2: http://download.videohelp.com/jsoto/guides.htm

 

Contact info

For bug reports, suggestions or any other stuff, contact me at:

http://forum.doom9.org/  (I'm registered as jsoto) or

email: jesus_soto_viso ( a t ) terra ( d o t ) es

 

Background:

A DVD is composed by several Video Title Sets (VTS), and each one can contain one or more Title Program Chains (PGCs). Also, one VTS can have a menu, also composed by Menu Program Chains.

A VTS is a collection of Titles, which are composed by one or more PGC. One Program Chain can be an entry (the first PGC of a title) or not in the DVD title list. All Title PGCs of a VTS must have the same video attributes, and also all Menu PGCs must have the same video attributes

One PGC is composed by Cells, (the minimum playable item). In fact, a PGC is a sequence of Cells. One cell can be used in one or more PGCs of the same domain (shared cells)

 

How VobBlanker works

VobBlanker needs a FILE mode, unencrypted backup of the DVD to be processed. This backup can be done using a ripper in FILE mode or mounting in a virtual drive an unencrypted DVD image. VobBlanker uses the info stored in the IFOs to access the Cells inside the VOBs.

 

When the VIDEO_TS.IFO file is selected, VobBlanker reads automatically all the IFOs in the same folder and stores in memory all the required info.

Now, the user is allowed to configure how the DVD is going to be processed, which PGCs are going to be blanked, etc. The user has to select the output folder where the processed DVD will be stored. Project settings can be saved/loaded from Menu.

 

VobBlanker will NOT modify any file of the input folder. It opens these files for reading. A special case is when “Use input folder” is selected: In this case, VobBlanker creates a folder “VobBlanker_backup”. This folder is used as output folder during processing; but at the end of the process, the processed files are swapped with the original ones, so the Input folder will have the processed DVD, and the VobBlanker_backup folder will have the original (untouched) ones. This method allows to skip some VTSs/menus/titles which are not required to be processed, saving a lot of processing time and disk space.

 

TIP: Using different physical drives in input and output folder will increase a lot the processing performance

TIP: Check “Use input folder” if you are going to keep the VTS with the main movie: Mark this VTS as skip.

 

CLI support

VobBlanker [-log] [-scan][-min] [-run] [-exit] project_file.ini

-log:Useful only for debugging. Creates some files in c:\

-scan: Starts a full VOB scan after loading IFOs. This guarantees the right cell ini/end pointers

-min: VobBlanker runs minimized

-run:Auto start process

-exit:Quits when finished

project_file.ini:Project saved. See an example. Mandatory parameters are in [General] Section:

InputPath: VIDEO_TS.IFO Path

OutputPath: Destination folder

No more parameters mandatory. All the rest default to a safe value (KEEP).

 

VobBlanker workflow

This is the workflow:

 

for VTS=1 to nVTSs in this DVD

{

    if VTS_Action=process

    {

        if (Process Menu checkbox)

        {

            Phase 1: Preparation:

                for PGC=1 to nPGCs in this Menu

                    switch (PGC_Action)

                    case (keep) KeepMenu (prepare Cells);

                    case (blank) BlankMenu (prepare Cells);

                    case (delete) DeleteMenu (prepare Cells);

                    case (still) StillMenu (prepare Cells);

                    case (cellbased) CellbasedMenu (prepare Cells);

            Phase 2: Write VOB:

                for nCell=1 to nCells in this Menu

                    switch (Cell_Action)

                    case (keep) KeepCell;

                    case (blank) BlankCell;

                    …..

            Phase 3: Correct SYNCI/SRI pointers in VOBs if checked

            Process IFO (Menu part)

        }

        if (Process Titles checkbox)

        {

            Phase 1: Preparation:

                for PGC=1 to nPGCs in this VTS

                    switch (PGC_Action)

                    case (keep) KeepTitle (prepare Cells);

                    case (blank) BlankTitle (prepare Cells);

                    case (replace) ReplaceTitle (prepare Cells);

                    case (strip) StripTitle (prepare Cells);

                    case (cut) CutTitle (prepare Cells);

                    case (cellbased) CellbasedTitle (prepare Cells);

            Phase 2: Write VOB:

                for nCell=1 to nCells in this VTS

                    switch (Cell_Action)

                    case (keep) KeepCell;

                    case (blank) BlankCell;

                    …..

            Phase 3: Correct SYNCI/SRI pointers in VOBs if needed

            Process VTS IFO file (Titles part)

        }

        Process IFO (Common part)

    }

}

if VMG_Action=process

{

    if (Process Menu checkbox)

    {

        Phase 1: Preparation:

            for PGC=1 to nPGCs in this Menu

                switch (PGC_Action)

                case (keep) KeepMenu (prepare Cells);

                case (blank) BlankMenu (prepare Cells);

                case (delete) DeleteMenu (prepare Cells);

                case (still) StillMenu (prepare Cells);

                case (cellbased) CellbasedMenu (prepare Cells);

        Phase 2: Write VOB:

            for nCell=1 to nCells in this Menu

                switch (Cell_Action)

                case (keep) KeepCell;

                case (blank) BlankCell;

                …..

        Process VMG IFO (Menu part)

    }

Process VMG IFO (Common part)

if (Use Input Folder)

{

    Move processed files to input folder (Adding “_new” substring to their filenames)

    Move original files to VobBlanker_backup folder

    Rename processed files to the right name in input folder (delete the “_new” substring)

}