Introduction
Sometimes you’ll end up having to deal with a DVD which has video recorded on it but the author neglected to finalize the disc. This can be a bit troublesome, because until the disc is finalized it doesn’t contain the necessary data to make it compatible with the DVD standard. Most consumer DVD players and PC based DVD drives rely upon this information to make sense of the data content on the DVD, so if it isn’t finalized most systems won’t open the disc. Either it will open a blank explorer window, or it won’t mount this disc at all. What to do?
Well, thankfully, it is possible to recover from this situation. There are some commercial applications out there which will do it (get your wallet out) or you can make use of open source software instead. I am going to describe the process for some free open source software on Linux.
DVD+RW-Tools
First of all, you need some free open source software called DVD+RW-Tools. This is a collection of programs for working with optical video disc media. Most modern linux distributions come with the tools installed as standard.
Reading the disc
Once you have the tools installed, you can use them to extract useful information about the data content on your unfinished disc. To do this, open a terminal and type:
dvd+rw-mediainfo /dev/dvd
You will get some output from the command. Here is a sample of output from an unfinalised DVD+RW which has one track on it:
brian@kubuntu:~$ dvd+rw-mediainfo /dev/dvd
INQUIRY: [HL-DT-ST][BD-RE BH16NS40 ][1.03]
GET [CURRENT] CONFIGURATION:
Mounted Media: 13h, DVD-RW Restricted Overwrite
Media ID: 80SONY-W0
Current Write Speed: 2.0x1385=2770KB/s
Write Speed #0: 2.0x1385=2770KB/s
Speed Descriptor#0: 00/716191 R@6.0x1385=8310KB/s W@2.0x1385=2770KB/s
READ DVD STRUCTURE[#10h]:
Media Book Type: 00h, DVD-ROM book [revision 0]
Legacy lead-out at: 716800*2KB=1468006400
READ DVD STRUCTURE[#0h]:
Media Book Type: 32h, DVD-RW book [revision 2]
Last border-out at: 2045*2KB=4188160
READ DISC INFORMATION:
Disc status: appendable
Number of Sessions: 1
State of Last Session: incomplete
"Next" Track: 1
Number of Tracks: 1
READ FORMAT CAPACITIES:
no media: 716192*2048=1466761216
00h(800): 716192*2048=1466761216
10h(10): 716192*2048=1466761216
15h(10): 716192*2048=1466761216
READ TRACK INFORMATION[#1]:
Track State: incomplete incremental
Track Start Address: 0*2KB
Next Writable Address: 132208*2KB
Free Blocks: 583984*2KB
Fixed Packet Size: 16*2KB
Track Size: 716192*2KB
READ CAPACITY: 0*2048=0
Note that it is possible to have many video clips contained within a single track or you can have video clips spread across multiple tracks; it depends on how the video information was written by the original equipment. You may also see multiple disc ‘sessions’. In the sample case above, we have a single track within a single session and I happen to know that there are multiple video clips contained in it.
I will show you how to extract the video for the above single track, but the method is exactly repeatable for any number of tracks and any number of sessions.
The dd Command
‘dd’ is a command for copying data from some media. To use it, you give it a block size, a start address, an end address, an input file and an output file. To see how this applies to the above information, consider the following command:
dd bs=2048 skip=0 count=716192 if=/dev/dvd of=/$HOME/track1.vob
This will extract the single track from the disc and place it in your home. To explain, let’s go through the parameters one at a time:
bs
This is block size. To get the correct block size, take a look at the information from DVD+RW-mediainfo. You will see that the data information (e.g. Start Address) is terminated with an asterisk and a number:
Track Start Address: 0*2KB
In this case we are given 2KB. Since there are 1024 bytes in a kilobyte, the number to give for bs is 2048.
skip
This is the number of bytes to skip in order to reach the start address of the track. In the above example the start address is 0, so there are 0 bytes to skip. But in examples with multiple tracks and/or sessions, you will have non-zero start addresses. Just enter the start address for the track you are interested in as the parameter for skip.
count
This is the number of bytes to extract, from the start address. To obtain this information, simply use the track size data:
Track Size: 716192*2KB
if
This is the input file. You need to supply the path to your DVD device. In most cases it will be /dev/dvd
of
This is the location where the output file will be written. $HOME works fine.
Finished – Play It!
Once you have extracted your track, you can play it in any standard media player. You could also write it to a new disc, remembering to finalise it this time!!!
Good luck.
One response to “Recover Data From Unfinalized DVD RW”
Hello, is the author of this article still around, I need some advice.