Part 2: Creating the DVD


The remainder of this tutorial is what to do with the menu_* files.

The first thing I did, was fire up MainConcept's 'MainActor 5.2.9'.  There is a free trial version, and there is also a Linux version!
I used this to create an mpeg for the menu's background.
I added a 'clouds' source effect to the timeline, and rendered it as a DVD MPEG, to file menu.mpg.
I kept it very short for this demo.
Note: No screwing around with audio or multiplexing required!!!

Then, I ran the command:
%> rm -fr menuWithCap.mpg
%> spumux   menu_spu.xml < menu.mpg > menuWithCap.mpg


This file is multiplexed!  However, you cannot see it if you simply play the mpeg.
So, in order to test it out, I created a very simple dvdauthor config file.
Then, all that was left to do was run dvdauthor!

%> rm -fr DVD
%> dvdauthor -x dvd.xml


That's it! The rendered DVD has a looping MPG menu, with buttons that you can click on!  Cool!
It can be played on your DVD player, and it works in WinDVD4!


File dvd.xml:
<dvdauthor dest="DVD">
  <vmgm>
    <!-- The root menu will play the non-captioned movie once, and then jump to the first titleset -->
    <!-- I use register g0 to save my button state for looping. -->
    <menus>
      <pgc>
        <vob file="menu.mpg" />
      <post>
          g0=0;
          jump titleset 1 menu;
        </post>
      </pgc>
    </menus>
  </vmgm>

<titleset>
    <menus>
      <pgc>
        <vob file="menuWithCap.mpg"/>
        <button name="Options"> jump title 1; </button>
        <button name="Play"> jump title 1; </button>
        <pre>
          <!-- restore my button state -->
          button=g0;
        </pre>
        <post>
          g0 = button;    <!-- Save my button state -->
          jump menu 1;    <!-- loop! -->
        </post>
      </pgc>
    </menus>

    <titles>
      <pgc>
        <!-- sorry to reuse this so often, but I want to keep the package small! -->
        <!-- Ideally, this would be your movie. -->
        <vob file="menu.mpg"/>
      </pgc>
    </titles>
  </titleset>
</dvdauthor>