dvdauthor; man page

Man Pages Index


SYNOPSIS
       dvdauthor [ -o output-dir ] -x xml-config-file


       dvdauthor [ -o output-dir ] [ -j | --jumppad ] [ -T | --toc ] [ menu or
       title options ]


DVD BACKGROUND
       At  a high level, a DVD is a collection of menus and titles.  Conceptu‐
       ally, a menu contains buttons which can be assigned  actions  and  pro‐
       vides  a  list  of  choices to the end user, while a title contains the
       main content of the DVD.  However, in  reality  many  of  the  features
       available  in  menus (including buttons, pausing, and looping) are also
       available in titles.

       The menus and titles are divided into titlesets and the VMGM menu  set.
       A  titleset can contain a number of menus and titles which are meant to
       act together.  The "menu", "audio", "subtitle", and "angle" buttons  on
       the  DVD  player’s  remote  control  will  all access menus in the same
       titleset as the title which is being played.  All the titles and  menus
       of  a  given titleset have the same video, audio, and subtitle settings
       (the definitions for the menus are independent from the definitions for
       the  titles),  so  if  you want to have different settings (for example
       widescreen vs standard aspect ratios), then you  need  separate  title‐
       sets.  Titlesets are not meant to jump to one another, so the VMGM menu
       domain is used.  It is a collection  of  menus  (no  titles)  that  can
       access the menus and titles of all the titlesets.

       One  of  the most frusterating things when deciding how to author a DVD
       is that there are often many ways to accomplish  the  same  task.   For
       example,  you  must decide whether to locate menus at the VMGM level or
       the titleset level.  A typical setup is to locate the high level  menus
       at the VMGM level, and the low level configuration menus (scene / audio
       / subtitle selection) at the titleset.  If there are DVD  extras,  per‐
       haps with a lower quality audio track and a 4:3 aspect ratio, then they
       would be in a separate titleset with a menu to select among the  extras
       located at the titleset level.

DVDAUTHOR DESCRIPTION
       dvdauthor  works  in discrete operations.  It authors each titleset one
       at a time, and then finally authors the VMGM to complete the disc.   At
       that  point  the contents can be written out to a DVD.  If you are con‐
       trolling dvdauthor with command line arguments,  then  each  step  will
       occur  independently;  however  if  you are using the XML configuration
       file, then you have the option of combining some or all the steps  into
       one.

       The  VOBs  passed  to dvdauthor must have DVD NAV (VOBU) packets multi‐
       plexed in at the correct locations.  Many tools can do this,  including
       mplex  from  mjpegtools 1.6.0 or later.  dvdauthor will then fill these

       -m     Creates a menu.

       -t     Creates a title.

       -v video-opts

       --video=video-opts
              A plus (+) separated list of video options.  Dvdauthor will  try
              to  infer  any  unspecified  options.   pal,  ntsc,  4:3,  16:9,
              720xfull,  720x576,   720x480,   704xfull,   704x576,   704x480,
              352xfull,  352x576,  352x480, 352xhalf, 352x288, 352x240, nopan‐
              scan, noletterbox.  Default is ntsc, 4:3, 720xfull

       -a audio-opts

       --audio=audio-opts
              A plus (+) separated list of options for an  audio  track,  with
              each   track   separated   by  a  comma  (,).   For  example  -a
              ac3+en,mp2+de specifies  two  audio  tracks:  the  first  is  an
              English  track  encoded  in  AC3,  the  second is a German track
              encoded using MPEG-1 layer 2 compression.  ac3, mp2,  pcm,  dts,
              16bps,  20bps, 24bps, drc, surround, nolang, 1ch, 2ch, 3ch, 4ch,
              5ch, 6ch, 7ch, 8ch, and any two letter ISO 639 language abbrevi‐
              ation.   Default  is  1  track,  mp2, 20bps, nolang, 2ch.  ’ac3’
              implies drc, 6ch.

       -s subpicture-opts

       --subpictures=subpicture-opts
              foo

       -e entry(s)

       --entry=entry(s)
              foo

       -p palette-file

       --palette=palette-file
              foo

       -i commandlist

       --instructions=commandlist
              foo

       -c chapterpts

       --chapters=chapterpts
              foo


       <dvdauthor [dest="output-dir"] [jumppad="1|on|yes"] >
          <vmgm>
             <menus [lang="language-code"] >
                <video [format="ntsc|pal"] [aspect="4:3|16:9"]
                       [resolution="XxY"] [caption="field1|field2"]
                       [widescreen="nopanscan|noletterbox"] />
                <audio [format="mp2|ac3|dts|pcm"] [channels="numchannels"]
                       [quant="16bps|20bps|24bps|drc"] [dolby="surround"]
                       [samplerate="48khz|96khz"] [lang="language"] />
                [<audio ... />]
                <subpicture lang="language" />
                <pgc [entry="title"] [palette="yuvfile|rgbfile"]
                     [pause="seconds|inf"]>
                   <pre> commands; </pre>
                   <vob file="file.mpg" [chapters="chapter-list"]
                        [pause="seconds|inf"] />
                   [<vob ... />]
                   <button [name="buttonname"]> commands; </button>
                   [<button ... />]
                   <post> commands; </post>
                </pgc>
                [<pgc ... />]
             </menus>
          </vmgm>
          <titleset>
             <menus>
                [<video ... />]
                [<audio ... />]
                <pgc [entry="entries"]
                     [palette="yuvfile|rgbfile"] [pause="seconds|inf"]>
                   [...]
                </pgc>
                [<pgc ... />]
             </menus>
             <titles>
                [<video ... />]
                [<audio ... />]
                <pgc [palette="yuvfile|rgbfile"] [pause="seconds|inf"]>
                   [...]
                </pgc>
                [<pgc ... />]
             </titles>
          </titleset>
          [<titleset ... />]
       </dvdauthor>

       A breakdown of the config file:

       <dvdauthor [dest="output-dir"] [jumppad="1|on|yes"]>
              Initiates dvdauthor.  dest denotes the directory where dvdauthor
              will  write the files.  It overrides the -o option.  Contains up
              <subpicture> tags, and any number of <pgc> tags.

       <video [format="ntsc|pal"] [aspect="4:3|16:9"] [resolution="XxY"] [cap‐
       tion="field1|field2"] [widescreen="nopanscan|noletterbox"] />
              Manually configures the video parameters for this pgcgroup.   If
              any  of  these  are not set, then they will be inferred from the
              source stream.  Note that the DVD format only specifically  sup‐
              ports  720x480,  704x480,  352x480,  and 352x240 resolutions for
              NTSC, and 720x576, 704x576, 352x576, and 352x288 resolutions for
              PAL,  but  DVD  author  will  accept a wider range of inputs and
              round up to the nearest size.

       <audio [format="mp2|ac3|dts|pcm"] [channels="numchannels"] [dolby="sur‐
       round"]    [quant="16bps|20bps|24bps|drc"]   [samplerate="48khz|96khz"]
       [lang="language"] />
              Manually configures an audio channel for  this  pgcgroup.   List
              once  for  each channel.  Most parameters are inferred automati‐
              cally from the source VOBs except for PCM parameters.   However,
              language  must  be manually specified.  Note that it is possible
              to just list the language attribute and let  dvdauthor  fill  in
              the rest.

       <subpicture lang="language" />
              foo

       <pgc    [entry="entries"]    [palette="yuvfile|rgbfile"]   [pause="sec‐
       onds|inf"]>
              A PGC is just a fancy term for either a menu or a title.  It has
              a special meaning in the DVD spec so I  have  retained  its  use
              here.   PGC’s  can  have  commands that get executed before they
              start playing or after they finish; see pre and post tags below.

              If  the  PGC  is a menu, you can specify one or more entries for
              it.  This means that if you press the  corresponding  button  on
              your DVD remote, then it will go to this menu.  For a VMGM level
              menu, the only choice is title, which on my  remote  corresponds
              to  the top menu button.  For a titleset level menu, you can use
              root, subtitle, audio, angle, and ptt.  If you  want  more  than
              one,  separate them by a space or a comma.  Note that root entry
              is meant for commands that jump from a  VMGM  level  menu  to  a
              titleset menu.

              All  button  and  menu masks and all subtitles within a PGC must
              share the same 16 color palette.  If you use spumux to  generate
              the subtitle/subpicture packets, then the color information will
              be automatically  passed  to  dvdauthor;  however,  if  you  use
              another subtitler or want to have more control over the palette,
              you can manually specify it with  the  palette  attribute.   The
              first  16  entries  of  the  file should be the 16 colors of the
              palette, listed as  6  digit  hexadecimal  numbers  representing
              either  the  RGB  breakdown (if the filename ends in .rgb or the
              YUV breakdown (if the filename does  not  end  in  .rgb.   After
              ... </post> sequence), or to conditionally skip certain chapters
              if a flag has been set.

       <vob file="file.mpg" [chapters="chapter-list"] [pause="seconds|inf"] />
              foo

       <cell  [start="timestamp"] [end="timestamp"] [chapter="1|on|yes" | pro‐
       gram="1|on|yes"] [pause="seconds|inf"] />
              foo

       <button [name="buttonname"]> commands; </button>
              foo

LANGUAGE DESCRIPTION
       The language is quite simple and roughly looks like C.

       · Statements are terminated with a semicolon.

       · Statements can span multiple lines.

       · Multiple statements can appear on one line.

       · Whitespace  (space, tab, newlines) are not important, except to sepa‐
         rate keywords and identifiers.

   VARIABLES
       The DVD virtual machine processes 16 bit values.  It supports up to  16
       general  purpose  registers;  however dvdauthor reserves 3 for internal
       use.  Thus register 0-12 are avaialable for use and are referred to  as
       g0 through g12.

       There  are  also  24  system  registers, which can be referred to as s0
       through s23.  Not all  of  these  can  be  set.   Many  of  these  have
       pseodonyms.

       audio (s1, rw)
              Denotes the audio channel, ranging from 0-7.

       subtitle (s2, rw)
              The subtitle track, ranging from 0-31.  If you want the subtitle
              to always be displayed, then you  should  add  64  (i.e.  choose
              64-95).   Simply  selecting the track (0-31) means that only the
              forced subtitles will be displayed, whereas enabling  the  track
              (64-95)  means  that  all the subtitles will be displayed.  This
              allows you to have forced subtitles only for the  parts  of  the
              movie  where  the  actors are speaking a foreign (to the viewer)
              language, but  still  have  normal  subtitles  for  the  hearing
              impaired.   The  hearing impaired viewers would enable the track
              (64-95) while the other viewers  would  just  select  the  track
              (0-31) they would be able to share the track.

       angle (s3, rw)
       Since  the  code  is  encapsulated  in  XML,  the parser will catch any
       unescaped < characters, thus alphabetic mnemonics  have  been  provided
       for all comparison operators for consistency.

   BLOCKS
       Blocks  are either a single statement (terminated by a semicolon), or a
       group of statements wrapped in curly braces.  For example:

       ·
         g3=s7;

       ·
         {
           audio=1;
           subtitle=65;
           jump vmgm menu 3;
         }

   STATEMENTS
       The statements supported are fairly simple at the moment.

       VARIABLE=EXPRESSION;
              Sets a variable equal to the result of an equation.

       if (EXPRESSION) BLOCK;

       if (EXPRESSION) BLOCK; else BLOCK;
              Calculates the expression; if true, then it executes  the  block
              of code.

       jump TARGET;

       call TARGET [resume CELL];

       resume;
              Jumps to a particular title or menu, or calls a particular menu,
              or returns to the calling title.  You can only  execute  a  call
              from  a  title to a menu; all other forms are illegal.  The pur‐
              pose of using call instead of jump (besides the fact  that  they
              support  a  mutually  exclusive list of targets) is to allow the
              menu to return to the point in the title where the  call  origi‐
              nated using resume.  You can manually specify the return cell by
              using the resume keyword, however if you do not specify one  and
              you  use  the  command in a post instruction block, then it will
              presume cell 1.

              The following are possible targets:

              [vmgm | titleset X] menu

              [vmgm | titleset X] menu Y


              program Z

              cell Z Targets  a chapter, program, or cell in the current title
                     or menu (note that menus do not have chapters).  You  can
                     use this to create looping menus: jump cell 1;



                                31 January 2005                   DVDAUTHOR(1)

--TechZilla

TechZilla.biz | TechZilla.info | SlicerUnderground | techzilla.50megs.com | Tohigherground | NextOnStage | EMUslax | GNUlinx | GamesOfDaPast | WorldCrimeWars | Fistula | Asus-Z81k | Riding-Gear | UniformDiscount | WorkWearIt | NuZilla