vobcopy copies DVD .vob files to harddisk, decrypting (if you have libdvdcss installed) them on the way (thanks to libdvdread and libdvdcss) and merges them into file(s) with the name extracted from the DVD. It checks for enough free space on the destination drive and compares the copied size to the size on DVD (in case something went wrong during the copying). vobcopy without any options will copy the first title into files of 2GB size into the current working directory.
vobcopy
called without arguments will find the mounted dvd and copy the title with the most chapters to the current working directory (thats the directory you're invoking vobcopy from).
vobcopy -h
or the man vobcopy
):
-n
copy the title-vob you specify behind -n (vobcopy -n 2
will copy title-vob 2)-b size[bkmg]
begins to copy from the specified offset-size. Modifiers like b for 512-bytes, k for kilo-bytes, m for mega- and g for giga-bytes can be appended to the number. Example: vobcopy -b 500m
will start to copy from 500MB onward till the end.
-e size[bkmg]
: similar to -b, this options lets you specify some size to stop before the end.
-l
rosenauer wrote some code to support large file output. The data is then written to one large file (presumably greater than 2GB)-f
to force output even if vobcopy thinks there is not enough free space in the output directory-i
to provide the path to the dvd if vobcopy fails to detect it correctly-o
option to specify a directory where the data will be copied to-1, -2, -3 and -4
can be named additional directories where the output will continue if the previous dir gets full. So no need to clean up the whole directory or even move files around!
-t name|stdout
you can either change the name of the output-file away from what the dvd says (-t hi
will write hi1-1.vob,hi1-2.vob etc. If you want to have a name with spaces, do it like this: -t "my movie"
) or you can write the output to stdout to be piped to some other program (for example: -t stdout
)
-I
(Info) gives you some Infos about the dvd data and the output directory.
-v
be more verbose in its output (in other words vobcopy will spam your console ;-)-v -v
print a log-file (with the standard output in it) to /tmp/ (the log should be sent to me in case of a bugreport)That brings me to building instructions:
What you need in advance is libdvdread and libdvdcss (in case you want/have to decrypt them) (Get them from tuxfinder.com for example).
make
compiles the source
alternatively make disable_lfs
to exclude the large file support altogether.
You can also get the src.rpm if your system is rpm-based (mandrake, suse, redhat...). The src.rpm was made for mandrake but I guess it should work with the others too...
Installation
make install
installs vobcopy in /usr/local/bin and the man page to /usr/man/man1.
The Usage is rather simple:
The dvd has to be mounted (otherwise the autodetection won't work) . I'll assume you mounted it to /dvd, if you mounted it to somewhere else substitute that below.
But using /dev/dvd with umounted dvd also works (but has some drawbacks).
vobcopy
will copy the title vobs with the most chapters of the dvd with the title of the film to the directory you are invoking this from.
vobcopy -n 3
will copy the title vobs belonging to title 3.
vobcopy -o /tmp/
will copy the vobs to the directory /tmp/.
vobcopy -1/tmp1/
will continue to write the data to this directory if the first one
(behind -o) is full. Additionally there are -2, -3 and -4 available.
(watch out that there are no spaces behind the number and the dir,
might not work otherwise)
vobcopy -l
will copy the data into only one really large file (probably larger
than 2 GB). This large-file-support has to be met by your system. No
autodetection yet.
vobcopy -h
gives you the available command options (help)
If parts of vobcopy work buggy you can override some things:
vobcopy -f
force vobcopy to write to the destination directory even if vobcopy
thinks there is not enough free space.
vobcopy -i /path/to/the/mounted/dvd/
if vobcopy fails to autodetect the mounted dvd you can provide the path
like that.
vobcopy -I
will give you some infos on the dvd data and on the output directory
vobcopy -V
will give you the version of vobcopy.
vobcopy -v -v
will write a log-file to /tmp/ which you can send to me as a bugreport
(along with a few words by you about the problem)
vobcopy -b size[bkmg]
begins to copy from the specified offset-size. Modifiers like b for
512-bytes, k for kilo-bytes, m for mega- and g for giga-bytes can be
appended to the number. Example: vobcopy -b 500m will start to copy
from 500MB onward till the end.
vobcopy -e size[bkmg]
similar to -b, this options lets you specify some size to stop before
the end.
So a max call might look like this:vobcopy -i /dvd/ -o /tmp1/ -1/tmp2/ -2/tmp2/ -3/tmp3/ -4/tmp4/ -n 2 -l -b 100m -e 1g -v
;-)
cvs -d:pserver:anonymous@cvs.lin-prog-newbie.sourceforge.net:/cvsroot/lin-prog-newbie login
cvs -d:pserver:anonymous@cvs.lin-prog-newbie.sourceforge.net:/cvsroot/lin-prog-newbie co projects/c/vobcopy
If you wonder now what to do with your ripped vob files, take a look at this: Moritz Bunkus made a howto "dvdripping4linux" in which he also features vobcopy.