Tovid Wiki
Advertisement

Note: page renamed in preparation for a new page on using 'tovid disc' for text menu DVD's as the makemenu script is deprecated in upcoming tovid 0.35.

This page has examples and screenshots of the kinds of menus you can make using the tovid menu command. Note that for an all-in-one type of solution there is also a text menu option with tovid disc command, which will transcode your videos (using tovid mpg) , create the DVD filesystem, and optionally burn the result (using tovid dvd).

Command-line examples have been formatted for readability, in general with one option per line (and backslash line-continuation). If you're typing in commands manually, you can leave out all the extra space and backslashes.

For more complicated examples, you may want to copy and paste the tovid menu command into your favorite editor, save as "myscript" (for example), then run:

$ bash myscript

Edit the script to tailor it to your needs; this is easier than trying to make changes directly on the command-line.


Comparing options[]

Throughout the following sections, you'll see example menus that exhibit many tovid menu features. The more complicated options have been isolated in their own sections, hopefully making it easier to understand what effects they have on a menu's appearance.


Basics[]

Makemenu-default

The (boring) no-option default.

With only a few options, you can dramatically improve the default no-option menu. These options include:

  • -background IMAGE
  • -audio MUSIC
  • -font FONTNAME
  • -fontsize NUM
  • -textcolor '#RGB'

Please continue reading to see how they are used in the following examples (they don't really deserve a separate example each).


Makemenu main title

With a main title

One basic option that warrants an example is -menu-title because it's new in tovid 0.30. This new option places a larger title above your menu entries. There are also a few extra options (which are described further below) thrown in.

$ tovid menu \
  -menu-title "Where to enjoy beer" \
      "Chiang Mai" \
      "Koh Samui" \
  -background ~/Desktop/ferry-flag.jpg \
  -font Lockergnome \
  -fontsize 30 \
  -textcolor firebrick3 \
  -highlightcolor gray90 \
  -button-outline black \
  -out MainMenu

The background image is copyright Joe Friedichsen (Friedrij).


-crop versus -scale[]

By default, tovid menu retains a background image's aspect ratio. If the supplied image isn't 4:3, then tovid menu will crop it so that it fits in the frame; images smaller than the frame are enlarged and images larger than the frame are reduced before cropping. Re-sizing and cropping is relative to the center of the image, and tovid menu ensures that no black bars appear on any side.

Crop

Default: -crop

Default -crop:

$ tovid menu \
      "Kanagawa Lindy Hop" \
      "The Mercury Cafe" \
      "Utah Exchange" \
      "Hullabaloo" \
  -background manhattan.jpg \
  -font HuskyStash \
  -fontsize 48 \
  -textcolor '#c20300' \
  -out MainMenu

Notice that -crop is not given, but the image is cropped anyway. This is the default behavior.


Scale

Squeezed image with -scale

With -scale:

$ tovid menu \
      "Kanagawa Lindy Hop" \
      "The Mercury Cafe" \
      "Utah Exchange" \
      "Hullabaloo" \
  -scale \
  -background manhattan.jpg \
  -font HuskyStash \
  -fontsize 48 \
  -textcolor '#c20300' \
  -out MainMenu

Watch this menu on YouTube.

In this menu, you can see more of Manhattan's skyline. Since the background image is a panoramic photograph, the horizontal dimension has been squeezed to fit the entire image. In this case, the distortion is difficult to detect since buildings are tall and skinny anyway, making this menu preferable to the other. However, if people or animals are present in a background image, then the resulting distortion may be unacceptable.

The background image is copyright Joe Friedrichsen (Friedrij).


Text alignment[]

There are eight ways to place text on a menu with the -align option. The most common are left, center, and right, but since tovid menu uses ImageMagick to draw the text, you can use any of its -gravity arguments. ImageMagick names text positions after the compass: north, east, south, west and northeast, northwest, southeast, southwest. The table below illustrates the basic idea of where aligned text goes.

Watch -align right on YouTube.

Text 'directions'
Left

-align left

Center

-align center

Right

-align right

West

-align west

Middle

-align middle

East

-align east

Southwest

-align southwest

South

-align south

Southeast

-align southeast

The menus above were made using the same command with only changes in the argument to the -align option:

$ tovid menu \
      "Nishi Yaizu Sento" \
      "Spring Brain Monkey" \
      "Hanami" \
  -align DIRECTION \
  -background park-feet.jpg \
  -font Strenuous \
  -fontsize 38 \
  -out MainMenu

The background image is copyright Joe Friedrichsen (Friedrij).


Using -nosafearea[]

By default, tovid menu accounts for television overscan and uses a safe area when writing the menu text. However, you can override this behavior with -nosafearea.

Safearea

Default safe area

Default safe area:

$ tovid menu \
      "The Grampians" \
      "Sumner Beach" \
      "Kenrokuen" \
      "Stanley Park" \
  -background snow-texture.jpg \
  -font ShiftyChica \
  -fontsize 48 \
  -textcolor '#02007b' \
  -out MainMenu

Watch this menu on YouTube.

The default safety area ensures that both the text and the buttons can be seen on any television (even on the worst overscanners).


Nosafearea

tovid menu with -nosafearea

With -nosafearea:

$ tovid menu \
      "The Grampians" \
      "Sumner Beach" \
      "Kenrokuen" \
      "Stanley Park" \
  -nosafearea \
  -background snow-texture.jpg \
  -font ShiftyChica \
  -fontsize 48 \
  -textcolor '#02007b' \
  -out MainMenu

If your television doesn't overscan (or overscans very little), then consider using -nosafearea.

The background image is copyright Joe Friedrichsen (Friedrij).


Font effects[]

Many more advanced effects can be added with the -fontdeco option.

Custom font[]

Example1

A custom font with the default background

You can use your own true type font (ttf) files with the -font switch, so you don't need to register them with ImageMagick if you don't want to. Hint: in the Opensuse 11.0 version I need to replace convert -list type by convert -list font. Otherwise my fonts are not used.


For example:

$ tovid menu \
      "24 Hours Episode 1" \
      "24 Hours Episode 2" \
      "24 Hours Episode 3" \
  -font /path/to/lcdwintt/lcd2u.ttf \
  -fontsize 48 \
  -out MainMenu

This menu uses a custom font (lcd2u.ttf) and shows what the default background looks like if you don't specify one yourself.


No font decorations[]

Example2

Custom background with no font decorations

The default font decoration method is -stroke black -strokewidth 1. You can specify you own font decoration method using the new -fontdeco switch. For example, you can unset the default decoration:

$ tovid menu \
      "Season One" \
      "Season Two" \
      "Features" \
  -font highspeed.ttf \
  -fontsize 72 \
  -fontdeco '' \
  -align center \
  -background grml.jpg \
  -out MainMenu


Note that this time a background image is also specified, and the DVD titles are aligned to the center. The background image is Copyright Timo Boettcher from grml.org.


Outlined text[]

Example3

..and with a white outline

Please refer to Anthony Thyssen's comprehensive ImageMagick Usage Examples for how to use the font effects governed by -fontdeco. There are just tons of ways to make your DVD menu looks nice. Here is another one:

$ tovid menu \
      "Season One" \
      "Season Two" \
      "Features" \
  -fontsize 72 \
  -fontdeco '-stroke white -strokewidth 1' \
  -textcolor none \
  -align center \
  -background grml.jpg \
  -out MainMenu


Tile patterns[]

Tile pattern

Using a tile pattern

In addition to color, ImageMagick can also fill text with its built-in patterns. For example, here is a menu created with -fontdeco '-tile pattern:hs_bdiagonal':

$ tovid menu \
      "Negiya" \
      "Watercourse" \
      "Big City Burrito" \
      "Laughing Planet" \
  -background zen-field.jpg \
  -align southeast \
  -fontsize 48 \
  -font KnuckleDown \
  -textcolor '#acff38' \
  -fontdeco '-tile pattern:hs_bdiagonal -stroke black -strokewidth 1' \
  -out MainMenu

Notice that -textcolor '#acff38' has been ignored since the pattern overrides it.

The background image is copyright Joe Friedrichsen (Friedrij).


Gradients[]

Gradient

Gradient fill

Watch this menu on YouTube.

You may have noticed that the default background is a gradient from blue to black. The same can be done with the text fill. Using -fontdeco '-tile gradient:#COLOR' will fade from #COLOR to black, and using -fontdeco '-tile gradient:#COLOR1-#COLOR2' will fade from #COLOR1 to #COLOR2.

$ tovid menu \
      "Negiya" \
      "Watercourse" \
      "Big City Burrito" \
      "Laughing Planet" \
  -background zen-field.jpg \
  -align southeast -fontsize 48 \
  -font KnuckleDown \
  -textcolor '#acff38' \
  -fontdeco '-tile gradient:#acff38 -stroke black -strokewidth 1' \
  -out MainMenu

Notice that once again -textcolor '#acff38' has been overridden.


Fractals[]

2 color fractal

A 2-color fractal

Another multi-color font filler is ImageMagick's fractal built-in. Tell tovid menu to use a fractal fill with -fontdeco '-tile fractal:'. Like gradient, fractal can take zero, one, or two color arguments.

$ tovid menu \
      "Negiya" \
      "Watercourse" \
      "Big City Burrito" \
      "Laughing Planet" \
  -background zen-field.jpg \
  -align southeast \
  -fontsize 48 \
  -font KnuckleDown \
  -textcolor '#acff38' \
  -fontdeco '-tile fractal:#ace345-#ffae00 -stroke black -strokewidth 1' \
  -out MainMenu

Just as in the previous two examples, -textcolor '#acff38' was overridden.


Button effects[]

You may have noticed that in many the previous examples the buttons didn't quite fit with the rest of the 'look and feel' of the menu. Well, tovid menu supports more customized buttons with a few new options:

  • -button BUTTON_CHARACTER|PRESET
  • -button-font FONT_NAME
  • -button-outline COLOR

These next few examples illustrate what button effects you can get from tovid menu.

Custom[]

Button custom

A colored '~' button

This menu uses all of the font options to set the font face, size, color, and decoration, but it also uses all three of the button options (and changes the highlight and select button colors). There is a custom button character (~), a different button font than the title font (Strenuous, as opposed to the titles' CrystalRadioKit), and a button outline matching the titles' outline.

$ tovid menu \
      "Pie-a-thon" \
      "Perl Harbor" \
      "Coderunner" \
  -background moma-ceiling.jpg \
  -align south \
  -font CrystalRadioKit \
  -fontsize 40 \
  -textcolor indigo \
  -fontdeco '-stroke lightgray -strokewidth 1' \
  -button "~" \
  -button-font Strenuous \
  -button-outline lightgray \
  -highlightcolor maroon \
  -selectcolor white \
  -out MainMenu

The background image is copyright Joe Friedrichsen (Friedrij).


Shortcuts[]

Making a custom button like that takes a lot of typing, so there are a few shortcuts for generating custom buttons. These shortcuts also set -button-font automatically, so you save a few keystrokes.

The play button

Button play

-button play

In addition to changing the character used as a button, -button also takes a few shortcuts. This example illustrates the shortcut play, which is shaped like the play icon on most A/V electronics.

$ tovid menu \
      "Pie-a-thon" \
      "Perl Harbor" \
      "Coderunner" \
  -background moma-ceiling.jpg \
  -align south \
  -font CrystalRadioKit \
  -fontsize 40 \
  -textcolor indigo \
  -fontdeco '-stroke lightgray -strokewidth 1' \
  -button play \
  -button-outline lightgray \
  -highlightcolor maroon \
  -selectcolor white \
  -out MainMenu


The movie button

Button movie

-button movie

Watch this menu on YouTube.

This example illustrates the shortcut movie, which is shaped like an old film projector.

$ tovid menu \
      "Pie-a-thon" \
      "Perl Harbor" \
      "Coderunner" \
  -background moma-ceiling.jpg \
  -align south \
  -font CrystalRadioKit \
  -fontsize 40 \
  -textcolor indigo \
  -fontdeco '-stroke lightgray -strokewidth 1' \
  -button movie \
  -button-outline lightgray \
  -highlightcolor maroon \
  -selectcolor white \
  -out MainMenu


utf8[]

Button utf8

-button utf8 00b7

Finally, -button can also take any utf8 character from any font to use as your button: just give the 4-character-long unicode hexadecimal code. This example chooses unicode 0x00b7 from Webdings as the button with -button utf8 00b7.

NOTE: unlike the previous shortcuts, -button utf8 UUUU does not set the button font. Left unset, the button font will be inherited from the title font.

$ tovid menu \
      "Pie-a-thon" \
      "Perl Harbor" \
      "Coderunner" \
  -background moma-ceiling.jpg \
  -align south \
  -font CrystalRadioKit \
  -fontsize 40 \
  -textcolor indigo \
  -fontdeco '-stroke lightgray -strokewidth 1' \
  -button utf8 00b7 \
  -button-font Webdings \
  -button-outline lightgray \
  -highlightcolor maroon \
  -selectcolor white \
  -out MainMenu


Advertisement