back
mkdvd 2.43
Convert anything to a DVD


Mkdvd is an easy-to-use front-end for several programs which allows simplifies converting most kinds of movies to a DVD which you can watch in your DVD player or give to your friends. While mkdvd is not a graphical front-end, it automates the entire task of creating a DVD into one simple command. Mkdvd runs on any UNIX platform, as long as the programs below are available. Mkdvd is also able to convert PAL movies to NTSC and/or vice versa (even if they are interlaced).

Download mkdvd 2.43

You need a few external programs to use mkdvd:

mplayer Mkdvd uses mplayer to decode the movies. Almost any movie that can be displayed with mplayer can be converted to a DVD with mkdvd. Please note that for mkdvd to work properly, mplayer must not be compiled for any other language than english. (If mplayer honored the LC_LANG variable, like most programs do, this would not be a problem...)
dvdauthor Dvdauthor does all the work of putting the DVD together once mkdvd has converted the videos and created the menus and subtitles.
mkisofs Mkisofs creates an ISO image from the file structure created by dvdauthor. Part of the cdrtools package.
cdrecord-prodvd If you're planning to burn DVD-R(W)s, you probably want to install this program to do it. It is not needed for mini-dvds or DVD+R(W)s
dvd+rw-tools If you're burning DVD+R(W)s, then this is the program you need. Personally I have burner that handles both DVD+RW and DVD-RW, and I use DVD-Rs and DVD+RWs, but no DVD-RW or DVD+R.
vsplit If you want to process TiVo streams, you'll need this to split up the stream in it's video and audio components. This will soon be obsolete however as new mplayer versions have support for TiVo streams built in.
mjpegtools Mjpegtools has a bunch of useful programs, but mkdvd really needs the mpeg2enc programs to encode a DVD-compatible MPEG2 stream.
ffmpeg ffmpeg is a cool program, mkdvd uses it to convert the audio streams to DVD-compatible AC3.
pike Of course you'll also need Pike, as mkdvd is written in Pike.

Usage: mkdvd.pike options file1 ...

Where options is one or more of:
--helpDisplay usage message.
--versionDisplay version.
--letterboxDon't create widescreen DVDs, letterbox instead.
--ntsc/--palForce video mode and attempt conversion when needed, default is to guess a mode based on input files.
-i/--image=iCreate a menu with this background. Use -igradient to make a simple blue background (default).
--interlace=[bottom,top,progressive]Specify the interlace mode.
--nomenuDon't create a DVD menu.
-d/--darken=vMultiply the menu background by this value, default is 0.85.
-f/--menufontFont to use for the DVD menu.
-h/--menufontsizeSize of menu font, default is automatically calculated.
--nomenutitleDon't draw the DVD title name on the menu (see --title).
-y/--ypos=yVertical position of the menu, default is autocalculated.
--subfont=fUse this font when creating DVD subtitles, if applicable.
--subfontsizeSize of subtitle font, default is 32
--sortSort files by time
--automergeMerge numbered files
-b/--burnBurn dvd with cdrecord-wrapper.sh. Without any files, burn a previously created dvd.
--blankBlank DVD-RW before writing.
--isoMake an ISO image.
-+/--+=devBurn a DVD+R(W). Default device is /dev/cdwriter
-2Adjust space for dual-layer DVDs.
--cdMake a 700MB mini-DVD.
-t/--title=tWhen burning / making ISO, use this title. Defaults to the basename of the first file.
--cpus=NUse N threads while encoding VOBs.
--draftMinimum quality, maximum speed, for debugging/testing.
--fastMaximum speed, reasonable quality.
--originalInclude the original files on the DVD.
-o/--output=oOutput directory. (default: ./dvd)
--aid=numUse this audio track, rather than encoding all tracks.
--cache[=dir]Keep temporary files [in dir] (default: ./dvd.tmp)
--allow-480Currently for TiVo streams only, avoids resampling the image data, which saves a lot of time but breaks the DVD specs, some DVD players can still play DVDs generated this way.
--overscan=NMake picture N percent smaller. A value of 10 will make the image fit an analog TV better.
--bitrate=NVideo bitrate in kbps, normally only needed if mkdvd.pike can't determine the length of input files.
--aspect=x:yOverride the aspect of the input files.
--inferfpsRe-calculate FPS of input files.
--inferdelayRe-calculate of input files.
--fixfpsTry to fix weird AVIs by dropping/duplicating images.
--reencode-videoReencode video even if input files are valid for DVDs.
--reencode-audioReencode audio even if input files are valid for DVDs.
--reencodeequal to --reencode-video --reencode-audio
--fullsizeForce generating full resolution video.
-m/--mplayer-opt=oUse this extra argument when invoking mplayer.
--use-transcodeUse transcode instead of mpeg2enc (experimental).

Usage examples:

Create a DVD-R(W) from your vacation movie.

$ mkdvd.pike --burn Vacation.dv

Create a DVD+R(W) from your last three vacation movies.

$ mkdvd.pike --burn -+ --title="Vacation Movies" --interlace 2000.dv 2002.dv 2004.dv

Convert an AVI with troublesome audio sync, no burning.

$ mkdvd.pike --iso --inferfps --fixfps troublesome.avi

Burn the previous example to DVD+R(W).

$ mkdvd.pike --burn -+ --title=troublesome

Given a bunch of files like "Vacation1.dv" "Vacation2.dv" "Home1.dv" "Home2.dv", arrange them, merge them, make a menu and burn them:

$ mkdvd.pike --burn --automerge --sort *.dv

Notes on conversion:

Normally, mkdvd will try to figure out if the source material you are using comes from a PAL source or an NTSC source. For most material, this is very easy to determine. Mkdvd will then proceed to make a DVD of the same type as the input. However, if your DVD player can't handle PAL material, mkdvd is able to convert the input to NTSC (or vice versa.) This conversion can take a lot of time, especially for interlaced material. The conversion can also cause a slight "jerkyness" in the picture due to frame repetition, this is especially noticable if the material has already been through some sort of frame rate conversion before.

If your DVD player (and TV) can handle it, it is almost always better to let mkdvd choose wether to make a PAL or NTSC DVD. If not, well, then you'll just have to wait while mkdvd converts it. Note that the --interlace option is very important when doing frame rate conversion. Mkdvd has no reliable way to know if the input is interlaced or not and the result is absoutely terrible if you try to convert interlaced PAL material to NTSC without specifying the proper interlace mode.

Problems? Questions? Suggestions? Check out the online forum.

This page has been accessed 100,589 times since May 9th, 2004.
Last modified: November 28th, 2005 - Design by Monica & Fredrik Hübinette