Log in

View Full Version : Ripping damaged DVDs with help of DGdecode


sven_x
31st October 2011, 16:26
Ripping a DVD with scratches really is a problem. After many attempts I found a good working solution that uses DGdecode.

Here is how it goes:
1. Read damaged DVD

Copy all files from DVD to a working directory with your favorite tool
Copy damaged files with the freeware Unstopable copier (http://www.roadkil.net/program.php?ProgramID=29).
In the settings tab set the slider to the right position "fast recovery" (in "slow recovery" modus it can try many hours to copy a few damaged bits, which will not help to restore the data.)
An advanced way of recovery is using several DVD drives together with a software that retries to catch the missing bits only when run at a different drive. (H2CDimage (http://www.heise.de/software/download/h2cdimage/39056) and others)

Damaged bits are filled with garbage, but this will be some % only of those 1 GB vobs.
Most video software cannot work with these damaged files. Virtualdub, avidemux and others throw an error message and quit.
But the following should work.

2. Load the Video using Avisynth and DGdecode

Index the ripped VOB files with DGindex.exe and watch carefully at which running time positions the status line stops for a short while. Write down these positions.
In the avs script edit the path to the proper d2v file generated before. Save script.
Open the script with Virtualdub. Select Audio > Audio from other file... and load the external audio file that DGindex has exported.
Go to the positions in that video that you have written down before. Play and check which parts of the video are damaged. Delete these small parts.
Recode the video.


AvsP Script ------------------------------------------------
# Loading a series of defect VOB files in Virtualdub to be able to cut and recode it
# Sven_x 2011

LoadPlugin("J:\plugins\DGDecode.dll")
# 1fst pass: start DGindedx, open VOB files, run Audio > Output method > Demux all tracks,
# run File > Save project

#open d2v file that you have generated before
Mpeg2Source("J:\...\VTS_01_1.d2v")

# a deinterlacer with antialiazing, written by Didée
# but you can use any other deinterlacer
loadplugin("J:\plugins\NNEDI3.dll")
LoadPlugin("J:\plugins\RepairSSE2.dll")
Loadplugin("J:\plugins\RemoveGrain.dll")
loadplugin("J:\plugins\mt_masktools-25_v20a48.dll") #2.0a45 or above
oo=last

nnedi3(field=-2,nsize=0,nns=3) #DVD content: nns=3
merge(selecteven(),selectodd())

D1=mt_makediff(oo,last)
D2=mt_makediff(last,last.removegrain(11,-1))
last.mt_adddiff(D2.repair(D1,13,-1).mt_lutxy(D2,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x

y ? ?"),U=2,V=2)
o=last
last

# open script with Virtualdub, load external Audio that has been exported by DGindex
#watch carefully for garbed video and cut off these parts


If there are any other working solutions please post here.

Ghitulescu
31st October 2011, 17:53
I try to recover as much as possible from the DVD. I have an incredible amount of optical units, but the best readers still are the LG writers.
I used once IsoBuster for a DVDR with a high jitter, produced by a DVD-recorder, but it kept reading the same sector over and over (I know I can click Ignore, but that's not what I want), I would prefer a SW that could sweep the whole disc in several goes (sometimes a sector can be read if the drive is set on reading speed, and not kept over the same sector over and over). I couldn't manage to use IsoPuzzle the way I wanted. I'll try H2CDimage (hoping I'll find that DVDR again), thanks for the tip.

The recovery becomes more problematic if the DVD is CSSed and/or has copy protections. But probably one can mount the recovered ISO image and do the work from there.