Package: dvdbackup
Severity: wishlist
Tags: patch

Hi.

I use dvdbackup all the time to backup DVDs, but I noticed that it doesn't perform some things that other, similar software for Windows does (I just knew about this when I read about dvddecrypter, which is, as almost all Windows programs non-free).

The things that I see that it does are:

* Add the possibility of extracting the video_ts folder resetting the region bitmask (which is at offset 35 of the .IFO and .BUF files), so that the resulting images are region free (see attached a quick'n'dirty perl script that does exactly that and that I would love if this were implemented in dvdbackup);

* Add the possibility of extracting the RCE protection from the extracted videos (I'm not sure if resetting the region mask bits of all .IFO & .BUF files is enough or not). Anyway, libdvdnav and libdvdread have code to detect if a given DVD has RCE;

* Add the possibility of extracting the Macrovision protection of the VOB files;

* Add the possibility of extracting the bits that set the "User Prohibited Operations" like skipping the FBI warnings and movie trailers.

I'm filing a wishlist bug because I would like to burn the extracted DVD images to blank media, without recompressing/requantizing it, for backup purposes.


Thanks in advance for any help, Rogério Brito.
#!/usr/bin/perl -W
#
# Script to make a given DVD region free ("region 0"), which will get
# rid of some headaches of DVD users.
#
# Assumptions: The DVD has to be ripped already and it must be run from
# the DVD's VIDEO_TS directory. I would be glad if the idea were ported
# to tools like dvdbackup.
#
# Written by Rogério Brito on 2009-02-01, based on xvi's excellent text
# at: http://xvi.rpc1.org/Patching%20DVD%20firmware.pdf
#

sub clean_file {
    open(F, "+<$_[0]") or die("Couldn't open $_[0]: $!");
    seek(F, 0x23, 0) or die("Couldn't locate byte with offset 0x23 of $_[0]: $!");
    print F chr(0);
    close(F) or die("Couldn't close the $_[0] file: $!");
}

# Clean VIDEO_TS.IFO and then its backup (VIDEO_TS.BUP).
clean_file("VIDEO_TS.IFO");
clean_file("VIDEO_TS.BUP");

exit 0;

Reply via email to