WebDVD
======

WebDVD is intended to provide a simple way of producing DVDs with
attractive and usable menus.  It converts HTML pages into DVD menus by
rendering them in Mozilla and reproducing their link structure.  This
allows you to design DVDs using familiar HTML editing tools or your
favourite text editor.

Requirements
------------

WebDVD depends on the following software:

- dvdauthor
- Gtkmm 2.0
- mjpegtools
- Mozilla 1.7.x (later versions may work but are untested)
- netpbm
- Xvfb (from XFree86 or X.org)

To build a complete DVD image you will also need:

- mkisofs

You will also need a program such as ffmpeg or mencoder for producing
DVD-suitable MPEG-1 or MPEG-2 video files.

Usage
-----

Design your DVD menus as a series of HTML pages linking to each other
and to MPEG-1/2 videos that are suitable for use on a DVD.  Currently
the videos must be local files with filenames ending in ".vob", but no
such restrictions apply to the HTML pages.  You must be careful not to
link to pages that you do not want to appear on the disc, such as
normal web sites.  Also note the limitations listed below.

By default, webdvd generates PAL/SECAM video.  If you wish to produce
NTSC DVDs you can override this by adding the option "--video-std ntsc"
to the following commands.

To get a rough preview of the menus, run "webdvd --preview menu-url"
where menu-url is the URL or filename of the first page to show.
Currently videos cannot be displayed in this preview mode.

To create a DVD filesystem, run "webdvd menu-url output-dir" where
menu-url is the URL or filename of the top menu page and output-dir is
the directory in which to create the filesystem (which should be
either nonexistent or empty).  WebDVD will automatically follow links
to the other pages and to the video files.

If this is successful you can then use mkisofs to create a DVD image
from the output directory.  Alternately you can write this directory
directly to a writable DVD with growisofs or with mkisofs piped to a
suitable version of cdrecord.

Limitations
-----------

Each page must fit within the frame - DVD players do not support
scrolling menus and WebDVD currently is not able to split them into
multiple menus.  Note also that the video frame is somewhat larger
than the visible area of a normal TV.  For this reason WebDVD applies
a stylesheet to all pages that adds 50-60 pixels of padding on all
sides of the body.

DVD players do not have "back" buttons, so you should generally
provide links to "higher" menu pages.  However, they do have a button
for returning to the top menu.

WebDVD sends a "mouseover" event for each link and sets it into its
"hover" state, then records how this changes its appearance.  This
change is then shown when the corresponding button on the DVD menu is
highlighted.  WebDVD applies a stylesheet which changes the colour of
text links in the "hover" state, but this has no effect on image
links.  You must ensure that image links are highlighted in an obvious
way when the mouse pointer is over them.

The DVD specifications limit each menu to having no more than 36
buttons.  In any case, it is poor design to have very large numbers of
buttons on a single menu.  WebDVD will warn you if you use more than
this number of a links on a page, and will ignore any additional ones.

The DVD specification also limits the overlays that are used for
highlighting of buttons to using no more than 4 colours.  WebDVD will
reduce link highlighting to 1 transparent and 3 opaque colours using
Floyd-Steinberg dithering, which is certainly good enough for
anti-alised text but may not be so good for complex highlighting.

Author and copyright
--------------------

WebDVD was written by Ben Hutchings <ben@decadentplace.org.uk>.
Copyright 2005 Ben Hutchings.

This software is based in part on the work of the Independent JPEG Group.
Copyright 1991-1998 Thomas G. Lane.  (This applies to the file jquant2.c.)
