The main objectives of the project are as follows.
- Be able to backup a single DVD movie title to a single layer DVD disk.
- Be able to backup an entire DVD to a similar capacity disk.
- Provide a way to easily master a simple DVD from compatible video and audio streams.
The project is at an early stage of development and currently consists of two parts.
- A library that is called libdvd.
- A small test program named shrinkta.
Shrink (to become compacted), ta (to take) is a small test program that can back up a single DVD title to a 4.7Gb DVD disk.
It does this with the help of the included libdvd library and the following programs,
- Tcrequant is used to resize the video stream if required. Tcrequant is part of the transcode package.
- Mplex is used to multiplex the video and audio stream/s into a DVD compatible mpeg2 stream. MPlex is part of the mjpegtools package.
- Dvdauthor creates the DVD titleset and DVD Table Of Contents.
- Mkisofs creates the disk image.
- Nautilus-cd-burner can be used to write the image to disk.
Libdvd is based on the excellent dvdread library. It is object oriented, written in C and is is built on top of glib's object system. The library borrows some code from other GPL programs, namely transcode at this point for extracting video and audio tracks.
Although the library is far from complete at this stage, it has enough ability to complete the following tasks:
- Read a DVD's title information including video properties, audio properties and chapter times.
- Estimate the disk size of the title.
- Extract a title's movie, outputing separate video and audio streams.
- Provide progress time information for users.
Although I am not a programmer, I have been dabbling around with C, gtk+ and various GNOME libraries for a few years now.
I believe I have the ability to eventually build the software and this project will achieve its goals.
Any idears are welcome specifically on the library design, along with feature requests and (of course) patches that fix bugs.
I also have a full time job, which means I don't have much time to work on this project. If you are interested in helping please contact me.