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:
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 does all the work of putting the DVD together once
mkdvd has converted the videos and created the menus and subtitles.
Mkisofs creates an ISO image from the file structure created by
dvdauthor. Part of the cdrtools package.
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
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.
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
Mjpegtools has a bunch of useful programs, but mkdvd really needs
the mpeg2enc programs to encode a DVD-compatible MPEG2 stream.
ffmpeg is a cool program, mkdvd uses it to convert the audio
streams to DVD-compatible AC3.
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:
|--help||Display usage message.|
|--letterbox||Don't create widescreen DVDs, letterbox instead.|
|--ntsc/--pal||Force video mode and attempt conversion when needed, default is to guess a mode based on input files.|
|-i/--image=i||Create a menu with this background. Use -igradient to make a simple blue background (default).|
|--interlace=[bottom,top,progressive]||Specify the interlace mode.|
|--nomenu||Don't create a DVD menu.|
|-d/--darken=v||Multiply the menu background by this value, default is 0.85.|
|-f/--menufont||Font to use for the DVD menu.|
|-h/--menufontsize||Size of menu font, default is automatically calculated.|
|--nomenutitle||Don't draw the DVD title name on the menu (see --title).|
|-y/--ypos=y||Vertical position of the menu, default is autocalculated.|
|--subfont=f||Use this font when creating DVD subtitles, if applicable.|
|--subfontsize||Size of subtitle font, default is 32|
|--sort||Sort files by time|
|--automerge||Merge numbered files|
|-b/--burn||Burn dvd with cdrecord-wrapper.sh. Without any files, burn a previously created dvd.|
|--blank||Blank DVD-RW before writing.|
|--iso||Make an ISO image.|
|-+/--+=dev||Burn a DVD+R(W). Default device is /dev/cdwriter|
|-2||Adjust space for dual-layer DVDs.|
|--cd||Make a 700MB mini-DVD.|
|-t/--title=t||When burning / making ISO, use this title. Defaults to the basename of the first file.|
|--cpus=N||Use N threads while encoding VOBs.|
|--draft||Minimum quality, maximum speed, for debugging/testing.|
|--fast||Maximum speed, reasonable quality.|
|--original||Include the original files on the DVD.|
|-o/--output=o||Output directory. (default: ./dvd)|
|--aid=num||Use this audio track, rather than encoding all tracks.|
|--cache[=dir]||Keep temporary files [in dir] (default: ./dvd.tmp)|
|--allow-480||Currently 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=N||Make picture N percent smaller. A value of 10 will make the image fit an analog TV better.|
|--bitrate=N||Video bitrate in kbps, normally only needed if mkdvd.pike can't determine the length of input files.|
|--aspect=x:y||Override the aspect of the input files.|
|--inferfps||Re-calculate FPS of input files.|
|--inferdelay||Re-calculate of input files.|
|--fixfps||Try to fix weird AVIs by dropping/duplicating images.|
|--reencode-video||Reencode video even if input files are valid for DVDs.|
|--reencode-audio||Reencode audio even if input files are valid for DVDs.|
|--reencode||equal to --reencode-video --reencode-audio|
|--fullsize||Force generating full resolution video.|
|-m/--mplayer-opt=o||Use this extra argument when invoking mplayer.|
|--use-transcode||Use transcode instead of mpeg2enc (experimental).|
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 88,750 times since
- Design by