mkdvdvimage takes an XviD/DivX file and converts it to a DVD-Video image. This can then be burned with a number of tools.
Examples:
mkdvdvimage -v film.cd1.avi -v film.cd2.avi: create a DVD-Video of a two CD ripped film.
mkdvdvimage -a 2 -v 2ndfilm.avi: create a DVD-Video but do not use the default 16:9 encoding, use 4:3.
mkdvdvimage -t -v ep.s01e01.avi -v ep.s02e02.avi: create a DVD-Video and jump back to the menu after each episode.
Download
The code can be obtained from CVS and a debian package can be obtained from here on the SourceForge mirrors. The perl scripts that are previously released seperately are now in the scripts/ directory of the source tarball (*.orig.tar.gz. These scripts are writeit.pl (cf. infra) and a number of tool to stretch and adjust srt subtitles (processsrt.pl and converttosrt.pl).
History
writeit.pl was always inteded to perform the most used and/or required functionality with a number of options. Though this tool proved to be very useful for a number of persons, it grew complex. As such, only a subset of the functionality was used and the large option based functionality selection made it difficult to get acquited with.
The current approach is to move away from perl and re-write the most important and/or useful things in C. This should be able to make it mmore performant and make it able to adjust to different circumstances. The tools will be bundled under the name writeit.
writeit.pl
writeit is a script that makes life easier for burning CDs from the command line, it handles iso, bin/cue, vcd, svcd, blanking CDRW's, ... download from here
A number of simple examples are:
burn an iso: $ writeit.pl --burn marc-tng.01.iso
create multiple isos from a series of directories $ writeit.pl --image tng.02 --image tng.03 --image tng.04
burn a cue/bin file $ writeit.pl --raw image.cue
write a dvd+/-r(w) from directory of from an iso $ writeit.pl --dvd data/ $ writeit.pl --dvd data.01.iso
The following options burn an image immediately on the disk, you might want to check the menu building options that are implemented in writeit.pl to store multiple mpg tracks (X)(S)VCD on one disk (CD or DVD)
create a (X)VCD $ writeit.pl --vcd file.mpg
create a (X)SVCD $ writeit.pl --svcd svcdfile.mpg
Transcode 3 files using the mplayer plugin of transcode to a DVD image. Create a seperate title for eacht file. The result will be a DVD image (*.iso) which contains 3 titles. $ writeit.pl --mplayer --titles --dvdv 24.s03e01.ws.dvdrip.xvid-sfm.avi --dvdv 24.s03e02.ws.dvdrip.xvid-sfm.avi --dvdv 24.s03e03.ws.dvdrip.xvid-sfm.avi
and much more
Support for VCD, XVCD, SVCD, XSVCD through the vcdimager tools and tested.
It also enables you to create menus for VCD (tested) and SVCD (to be tested). The current script thas been tested with 1 to 4 mpg files. It creates a menu of 60 seconds long.
You will need the following programs on your system to create the menu and VCD images:
writeit.pl --menu FUT_05x08_The_Why_of_Fry.mpg --menu FUT_05x09_The_Sting.mpg --menu FUT_05x10_The_Farnsworth_Paradox.mpg --background /home/marc/backgrounds/futuramabackground.jpg
Take 3 mpg files, sample them for 60 (default) images and use futuramabackground.jpg as the background for the menu
writeit.pl --menu TOS_01x28_The_City_on_the_Edge_of_Forever.mpg
Create a menu with the default background and with only one mpg file.
writeit.pl --menu ENT_03x01_The_Xindi.XSVCD.mpg --menu ENT_03x02_The_Anomaly.XSVCD.mpg --menu ENT_03x03_Extinction.XSVCD.mpg --menu ENT_03x04_Rajiin.XSVCD.mpg --menu ENT_03x05_Impulse.XSVCD.mpg --menu ENT_03x06_Exile.XSVCD.mpg
Put 6 XSVCD episodes on one DVD-R image
I have tried to automate the creation of a DVD-Video disk in the same script, the limitiations are mainly the helper tools that sometimes do not recognise some stream and cannot decode it properly.
$ writeit.pl --dvdv Gothika.2003.XviD.avi --background gothika.jpg : create a DVD-Video image of this XviD/DivX file. You currently need to make certain that the background is compliant with DVD.
PAL: Open up The Gimp and make a new image of size 720×576, with a resolution of 75dpi in the x-axis and 80dpi in the y-axis.
NTSC: Make a new image of size 720x480, with a resolution of 81dpi in the x-axis and 72dpi in the y-axis.
(see this thread.). If you do not provide a background, the script will create one for you, so no messing with gimp. However, it is trivial to automate this, I will do this when there is a request for it.
I have also added support for a single subtitle stream (limitation of spumux). Just put it in the directory where the source movie is and give it the same name, except for the extension.
You currently need the CVS version for this. If you need an extra (positive) offset (subs are coming too soon), add the --suboffset N option with N the number of seconds to shift. For some encodings, you will can get strange colour shifts. If you encounter this, change the following line
in the script (-z flips the image, and -k swaps red/blue).
The result should be a cue/bin file combination you can burn with cdrdoa or with the above mentioned writeit.pl.: writeit.pl --raw _filename_.cue
In order to keep in the spirit of the previous project, I'll add some screens of futurama. Note that I added (from v0.2 onwards) a parameter to override the default background. The three images show the sampling of the orinal files in the lower images and the highlighting with the episode names.
A demo can be downloaded from here, and shows the first episode of enterprise and an episode if the simpsons (hey, those 45' shows only take 450 out of a possible 800 MB) sampled on a background.