Have you ever recorded an important video on a home DVD recorder? Do you use a camcorder that records directly on DVD disks? If you have had a recording fail to finalize properly, rendering it unusable, this post may help you.
I bought a DVD recorder from Walmart a few years ago. For the first several months, I used it to record many shows with no problems. I came to trust it to replace my VHS recorder. Then, I started to have problems. The recordings were not always completing properly. The unit would look normal while the show was recording, but when it stopped, the display would show, "Bad Disk." I could not do anything with the disk. It would not play, it would not finalize, it was a coaster. This recorder was an ILO DVDR05/ZU. I understand that this model was also sold as a CyberHome 1600 and the problems were the same. Technical support was non-existent and Walmart had discontinued that model. There were stories, similar to mine, all over the internet.
After losing several one shot shows, mostly news clips, I started recording on both VHS and DVD just to be sure I got important shows recorded. I soon replaced the recorder with a new one from a different manufacturer. I later found and repaired the problem with the ILO recorder. But, I was still left with several bad DVDs that contained video clips that I really wanted to keep. These were things that I could not get again. That is what prompted me to find a way to recover the video from these disks.
Caution: This procedure uses GNU/Linux programs that must be run from a command line. While the commands used are not difficult, you should feel comfortable in a command console if you are going to try this. I have not attempted to do this type of recovery in any other operating system, such as Microsoft Windows. It may be something that can be done easily in other operating systems or with other GNU/Linux tools. I have used this basic procedure to recover video from more than sixty DVDs.
Note: This is not a procedure to copy data from commercial DVDs that use CSS or other content protection systems. If you are looking for that, this will not help you. This method will not decrypt or rip video from protected DVDs.
These are the programs I use with links to their home pages:
dvdisaster Used to recover the data from the bad disk into a file. This is not the normal or intended use of dvdisaster. However, it does the best job of all the programs and tools that I have attempted to use to extract the data.
KDE DVD Authoring Wizard To create the new DVD image.
Konqueror Useful to preview parts of the file prior to reassembly.
K9Copy Not required but handy for shrinking the final files to fit on a single disk.
K3b Used to burn the new DVD.
FFmpeg Formats the video for DVD.
KHexEdit (Optional but very useful for advanced editing of the data files)
Split, cat and rm, from the GNU/Linux command set Used for file management.
In the typed commands that I show, the # sign shows that it is a terminal command. Do not type the # sign, just the line following it.
The first step is to get the data that exists on the DVD into a file where we can work with it. Even though it was not written for this job, dvdisaster is the tool that is easiest to use. It does a great job of extracting the raw data from a disk that would otherwise be a decoration.
To prepare for the data, create a directory on a drive that has at least twice as much space available as the DVD contains. If the DVD is a normal single side, single layer, you should have at least 10Gb available on the drive. In that directory, create two sub-directories to put files in while you work. I normally use ~/tempdvd for the base and ~/tempdvd/tmp1 and ~/tempdvd/tmp2 for the work areas.
Put the bad disk in a drive and start dvdisaster;

Select the drive that contains the bad DVD. Fill in the path and file name for the .iso image. The .ecc file will not be used for this step so you can disregard that field. Then click the "Read" icon on the right to start reading.
You will get a dialog that looks like;

Click "Skip RS02 test".
The recovery will start;

The chart on the left side displays the current read speed for the operation. The graphic on the right, shows the success or failure for areas of the disk as the operation proceeds. It is normal for the first blocks to be unreadable.
When the read operation completes, the display will look like this;

Just below the graph on the left, it will say, "Reading finished:" and will give the number of sectors that were not able to be read.
Konqueror should show the .iso image file in the tempdvd directory;
Open a terminal window and change into the tempdvd directory. Type the command;
#split -a6 -b1048576 -d filename.iso dvd
replacing the "filename" with your actual file name.
The only indication you will get that the command is finished, will be when the command prompt returns. Be patient, it will take some time for the file to be split.
If you have limited space available on the drive you are using, you can delete the .iso file now.
You will have a lot of 1Mb files in the directory. Most of them should have a type of "MPEG Video" if the extraction and split worked properly. In Konqueror, you can hover the cursor over a file name and see a preview of the video. You can use this to get an idea of which pieces you want to combine for the final video. This gives you some rough editing capability. Want to get rid of commercials? Just leave those files out at the next step.

Move the files for the first clip that you want to keep to the tmp1 directory. Just skip any files that you do not want in the clip and move the ones that you do want.
Now go back to the command terminal and change to the tmp1 directory. use the following commands to prepare the first clip:
#cat dvd* > vin.mpg
#rm dvd*
#ffmpg -i vin.mpg -target dvd ../tmp2/clipNNN.mpg
(replace NNN with a different number for each clip)
#rm vin.mpg
When you finish you will have an empty tmp1 directory and the first video clip in the tmp2 directory. Repeat the steps, starting with moving the files to tmp1, for each additional clip that you want to recover.
When you have all the clips in the tmp2 directory, you can delete the remaining files from the tempdvd directory.
The rest of the programs are being used for their intended tasks, so I will not go over the steps inside each program from here.
Use KDE DVDAuthor Wizard to turn the clips back into a properly structured DVD format.

If the final video file is too large to fit on one disk, use K9Copy to shrink it to fit.

Use K3b to burn the image to a disk.

Test your DVD and take pride in having saved your video.

This procedure has recovered many video files from DVDs that were otherwise useless. This is not intended to be an in depth how to article, it should be used as a starting point. There are other techniques that I employ to improve the quality of the final videos. Anyone who wishes to get better quality video, should do further research. I use KHexEdit to get more precise splitting and editing of the video data. I also use other options of FFmpeg to improve the final video quality.
Note Added 04/12/2008: It seems that I did not make it clear what the procedure is written for. I keep getting suggestions that all I need to do is mount the .iso or burn it to a new blank disk to get the video files. So, this is for cases where the session does not close properly or, the disk does not finalize. When that happens, the control data, which normally would tell the drive what type of disk it is and where the files are located, does not get written to the proper sectors at the beginning of the data track. The .iso does not contain that data and will not mount even if you specify the type with the -t option to the mount command. Writing the .iso to a new blank will create another disk with the missing data.