makemenu − Create (S)VCD/DVD−compliant text menus


makemenu generates (S)VCD− or DVD−compliant MPEG videos for use as navigational menus, given a list of text strings to use for title names. You can customize the menu by providing an optional background image or audio clip, or by using custom font and font color.



For example:
makemenu "Season One" "Season Two" "Featurettes" −out MainMenu


−ntsc (default)

Generate an NTSC−format menu


Generate an NTSC−format menu (24000/1001fps)


Generate a PAL−format menu

−dvd (default)

Generate a DVD−format menu, with highlighted text included as a multiplexed subtitle stream.



Generate a VCD/SVCD menu; each menu option will have a number associated with it. You can have up to nine menu options per menu.

Menu background/audio options:

Use IMAGE (in most any graphic format) as a background. If image is not the correct aspect ratio (4:3), it will be scaled and/or cropped, depending on the −crop and −scale options. If no background is supplied, a default background will be created.

−crop (default)

If provided background image is not 4:3 aspect ratio, crop edges to make it so. Image will be scaled up if it is too small. Cropping keeps the center area of image. If you want to do cropping/scaling yourself in another program, provide an image of 768x576 pixels.


If provided background image is not 4:3 aspect ratio, scale/stretch it to make it fit. May cause visible distortion!


Use AUDIOFILE (in most any audio format) for background music. The menu will play for long enough to hear the whole audio clip. If one is not provided, 4 seconds of silence will be used.

−length NUM

Make the menu NUM seconds long. Useful for menus with −audio: if you don’t want the entire AUDIOFILE in the menu, then you can trim the length of the menu with −length.

Menu text options:
−menu−title "

Add MENU TITLE TEXT as a title/header to the menu.

−font FONTNAME (default Helvetica)

Use FONTNAME for the menu text. Run ’convert −list type’ to see a list of the fonts that you can use; choose a font name from the leftmost column that is displayed. Or you can specify a ttf font file instead. E.g., ’−font /path/to/myfont.ttf’.

−fontsize NUM (default 24)

Sets the size for the font to NUM pixels.

−menu−title−fontsize NUM (default −fontsize + 8)

Sets the size of the menu title.


Sets the font decoration method to FONTDECORATION. It is used by the ’convert’ ImageMagick command to draw the menu text. You can add colored text outlines, gradient fills, and many others. See Usage notes.

−align {left|center|middle|right}

Align the text at the top left, top center, very middle, or top right side of the screen. You may also substitute any "gravity" keyword allowed by ImageMagick (north|south|east|west|northeast|southwest|...).


Use specified color for menu text. #RRGGBB and #RGB are hexadecimal triplets (e.g., #FF8035). COLORNAME may be any of several hundred named colors; run ’convert −list color’ to see them. White (#FFF) is the default color.

DVD−only options:
BUTTON (default ’>’)

Specify the button used for menu selection. Specify either a _single_ character or one of the shortcuts:

play −− Use a button shaped like ’Play’ on many A/V electronics: a triangle pointing to the right. (uses the font Webdings)

movie −− Use a button shaped like an old movie projector. (uses the font Webdings)

utf8 −− Use your own non−keyboard character as a button. Provide only the four hex digits: eg ’−button utf8 00b7’. Beware that ImageMagick’s utf8 characters aren’t the same as those drawn in character browsers like gucharmap.

−highlightcolor {#RRGGBB|#RGB|COLORNAME}

Use the specified color for button highlighting. Yellow (#FF0) is the default color.

−selectcolor {#RRGGBB|#RGB|COLORNAME}

Use the specified color for button selections (when a menu item is played or activated). Red (#F00) is the default color.

−button−outline {#RRGGBB|#RGB|COLORNAME}

Outline buttons with the specified color. ’none’ is the default.

−button−font FONTNAME

Specify a differnt font to use for the buttons. By default, the button font will be inherited from the title font (see −font). Use this option to use a different font for the buttons. The button font size is inherited from −fontsize and cannot be changed.

Other options:


Print extra debugging information to the log file. Useful in diagnosing problems if they occur. This option also leaves the log file (with a .log extension) in the directory after encoding finishes as well as all the temporary files created.


Do not attempt to put text inside a TV−safe viewing area. Most television sets cut off about 10% of the image border, so the script automatically leaves a substantial margin. This option turns that behavior off, leaving only a tiny margin. Use at your own risk.


Overwrite any existing output menu.


Don’t ask interactive questions, and assume answers that will continue making the menu until completion.


Limit output to essential messages.

If the word "back" is given as an episode title, a "back" button for returning to a higher−level menu will be added at the end of the list of titles. "Back" must be the last title listed.


makemenu −ntsc −vcd −align center −textcolor white −font "Helvetica"
"Episode 1" "Episode 2" "Episode 3" −out "Season−1"

Make an NTSC VCD menu with white Helvetica text containing three centered selections: Episode 1, Episode 2, and Episode 3. The finished menu will be called Season−1.mpg.

makemenu −ntsc −dvd −align southwest −textcolor white −highlightcolor
"#5f65ff" −selectcolor "#ffac5f" −font "Kirsty" "Episode 1" "Episode 2"
"Episode 3" −out "Main_menu"

Make an NTSC DVD menu with white Kirsty text containing three lower−left aligned selections: Episode 1, Episode 2, and Episode 3. Items under the cursor will be highlighted a pale blue, and selected items will be a pale orange (before going to the selected title). The finished menu will be called Main−menu.mpg.

The wiki has many more screenshots of menus with the commands that generated them.


The argument given to −font must be one of the fonts listed by the command ’convert −list type’. Please note that many of your installed fonts may not be available; if you want to maximize the number of fonts available to makemenu (#makemenu), download and run Anthony Thyssen’s ( ( script and run it like this: > ~/.magick/type.xml. If that doesn’t work, try > ~/.magick/type.mgk.

Or you can specify a ttf font file directly to the −font options if you don’t want to install fonts to ImageMagick.

The −fontdeco option is quite flexible and takes a lot of ImageMagick’s convert options. Please refer to the tovid wiki ( and Anthony Thyssen’s guide for further explanation and examples.


idvid(1), makedvd(1), makemenu(1), makeslides(1), makevcd(1), makexml(1), postproc(1), tovid(1), todisc(1)


For further assistance, contact information, forum and IRC links, please refer to the tovid homepage (