Simple Multitrack

last updated: 20-Dec-2002 | introduction | method 1 | method 2 | method 3 | discussion | back to index

Donate! If you like using this guide, then please help with its development by donation!  You can do so by clicking on the button to the left.  The donation is handled securely via PayPal.  Thank you.

Introduction

This is the simplest of all VCD structures.  The basic idea behind this is one or more tracks, that play sequentially from beginning to end (note: figure 1).

Pressing "next" goes to the beginning of the next track.
Pressing "prev" goes to the beginning of the previous track.

Each "track" on a VCD represents a real physical track on the actual medium.  For more info, read the relevant section in the GNU VCDImager manual.

Simple multitrack -- figure 1

There will be no CUE/BIN sample of the simple multitrack to download.  The PAL/NTSC Demo VCD has an example of the simple multitrack (method three).  This can be downloaded here: http://www.vcdimager.org/pub/vcdimager/examples/demovcd/

 

Method

Now, there are actually a number of ways that this can be achieved, but only three will be described:

  1. Method One: this structure is so simple that it can be made without using the XML system at all
  2. Method Two: using the XML system but not using PBC
  3. Method Three: using both the XML system and authoring PBC

In my humble opinion, method two is the best method.  Method one is the simplest and quickest, but it doesn't allow as much in the way configuring things.   Method two makes a disc that is functionally equivalent to method one but by virtue of the XML system, you can more easily configure your VCD.  Method three uses PBC and for a number of reasons that I will discuss in that section, it is not the best choice.   Click here for the discussion of PBC vs. no PBC.

 

Method 1

Basically, we are trying to create the structure described in figure 1.

For the purpose of this guide, there are three source file for the three tracks.   The source MPEG files are in the same directory as VCDImager.  They are named:

As mentioned previously, for such a simple VCD structure, we can bypass the XML system altogether and just use VCDIMAGER.EXE (this is one of the executable files included in the VCDImager package.

Open up the command console (in Windows, Start --> Program Files --> MS-DOS Prompt) and navigate to the appropriate folder.  Then run the following command as stated in figure 2.  This will produce:
  • a CUE file named "test-vcd.cue"
  • a BIN file named "test-vcd.bin"
  • The VCD will have a volume label of "TEST_VCD"

If you run VCDIMAGER --help at the command console, you will get a full list of the switches you can use and you may want to change or add some other options.  However, what is in figure 2 is more than enough to create a working VCD.

Burn the CUE/BIN image onto CD-R and you will have your simple multitrack VCD.
Simple multitrack - figure 2

Addendum (4-Sep-2002): now that the GNU VCDImager 0.7.12 Tools GUI for Win32 has been released, you can do the above without using the command console.

Install GNU VCDImager 0.7.12 Tools GUI for Win32 and start the program.  Then on the main menu, click on the button named "VCDIMAGER" which is under "Minor Authoring Tools"
vcdimager_gui3.png (12125 bytes)

To create the multitrack VCD with:

  • a CUE file named "test-vcd.cue"
  • a BIN file named "test-vcd.bin"
  • The VCD will have a volume label of "TEST_VCD"

first, click on "Add..." and then "Load" to load the MPEGs.  Click on "Okay" when done.
simple_multitrack4a.png (5075 bytes)

Then set the CUE/BIN filename to save, change the "Volume Name" and "Album ID" and click on "Go!":
simple_multitrack4b.png (11075 bytes)

 

Method 2

Basically, we are trying to create the structure described in figure 1.

For the purpose of this guide, there are three source file for the three tracks.   The source MPEG files are in the same directory as VCDImager.  They are named:

Firstly, we need to create our XML descriptor file.   You can:
  1. Create it manually (click here for more info)
  2. Or use VCDXGEN.EXE to create a simple XML file that we can work on

To create the simple XML file without PBC, use the command as shown in figure 3.

This creates an XML file named "videocd.xml" that we can now edit.

If you run VCDXGEN --help at the command console, you will get a full list of the switches you can use and you may want to change or add some other options.

Addendum (4-Sep-2002): as GNU VCDImager 0.7.12 Tools GUI for Win32 was released, you can do this step without the command console.  The process of this is quite similar to what was shown in Method One, except that you will have to click on "VCDXGEN" on the main menu, and check the "No PBC" box.
Simple multitrack -- figure 3

This is what was created in videocd.xml:

<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/vcdimager/videocd.dtd">
<!-- commandline used: /cygdrive/c/VCDIMA~3/VCDXGEN track1.mpg track2.mpg track3.mpg -=nopbc -->
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="vcd" version="2.0">
  <info>
    <album-id></album-id>
    <volume-count>1</volume-count>
    <volume-number>1</volume-number>
    <restriction>0</restriction>
  </info>
  <pvd>
    <volume-id>VIDEOCD</volume-id>
    <system-id>CD-RTOS CD-BRIDGE</system-id>
    <application-id></application-id>
    <preparer-id/>
    <publisher-id/>
  </pvd>
  <sequence-items>
    <sequence-item src="track1.mpg" id="sequence-00"/>
    <sequence-item src="track2.mpg" id="sequence-01"/>
    <sequence-item src="track3.mpg" id="sequence-02"/>
  </sequence-items>
</videocd>

 

Now,  say I want to customise my VCD with the following information:

  1. Album-id = TEST_VCD
  2. Volume-id = TEST_VCD
  3. Publisher-id = MICHAEL TAM - VITUALIS PRODUCTIONS
  4. Add CD-i files for CD-i compliance (click here for more information on how to add CD-i compliance)

Then, I would edit the above XML file into the following and save it:

<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/vcdimager/videocd.dtd">
<!-- commandline used: /cygdrive/c/VCDIMA~3/VCDXGEN track1.mpg track2.mpg track3.mpg -=nopbc -->
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="vcd" version="2.0">
  <info>
    <album-id>TEST_VCD</album-id>
    <volume-count>1</volume-count>
    <volume-number>1</volume-number>
    <restriction>0</restriction>
  </info>
  <pvd>
    <volume-id>TEST_VCD</volume-id>
    <system-id>CD-RTOS CD-BRIDGE</system-id>
    <application-id>CDI/CDI_VCD.APP;1</application-id>
    <preparer-id/>
    <publisher-id>MICHAEL TAM - VITUALIS PRODUCTIONS</publisher-id>
  </pvd>
  <filesystem>
    <folder>
      <name>CDI</name>
      <file src="cdi_imag.rtf" format="mixed">
        <name>CDI_IMAG.RTF</name>
      </file>
      <file src="cdi_text.fnt">
        <name>CDI_TEXT.FNT</name>
      </file>
      <file src="cdi_vcd.app">
        <name>CDI_VCD.APP</name>
      </file>
    </folder>
  </filesystem>
  <sequence-items>
    <sequence-item src="track1.mpg" id="sequence-00"/>
    <sequence-item src="track2.mpg" id="sequence-01"/>
    <sequence-item src="track3.mpg" id="sequence-02"/>
  </sequence-items>
</videocd>
In this example the name of the XML file has been left as the default "videocd.xml".  If desired, there is no reason not to name it into something else.

To make the CUE/BIN image of our VCD, VCDXBUILD.EXE is used.  If the command in figure 4 is run then it will create the following:

  • CUE file named "testvcd.cue"
  • BIN file named "testvcd.bin"

If you run VCDXBUILD --help at the command console, you will get a full list of the switches you can use and you may want to change or add some other options.

Burn the CUE/BIN image onto CD-R and you will have your simple multitrack VCD.
Simple multitrack -- figure 4

Addendum (4-Sep-2002): you can use VCDXBUILD without using the command console by using GNU VCDImager 0.7.12 Tools GUI for Win32.

To do the above, you will first have to download and install GNU VCDImager Tools GUI first.  Then, load it and click on "VCDXBUILD" on the main menu:
vcdimager_gui3.png (12125 bytes)

Then, load the XML file (videocd.xml in this case) and set the CUE/BIN filename to save and click "Go!":
simple_multitrack5a.png (8085 bytes)

 

Method 3

Basically, we are trying to create the structure described in figure 1.

For the purpose of this guide, there are three source file for the three tracks.   The source mpegs are in the same directory as VCDImager.  They are named:

Firstly, we need to create our XML descriptor file.   You can:
  1. Create it manually (click here for more info)
  2. Or use VCDXGEN.EXE to create a simple XML file that we can work on

To create the simple XML file with PBC, use the command as shown in figure 5.

This creates an XML file named "videocd.xml" that we can now edit.

If you run VCDXGEN --help at the command console, you will get a full list of the switches you can use and you may want to change or add some other options.
Simple multitrack -- figure 5

Addendum (4-Sep-2002): you can use VCDXGEN without using the command console by using GNU VCDImager Tools GUI.  The process of this is very similar to and was described under "Method 2".

This is what was created in videocd.xml:

<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/vcdimager/videocd.dtd">
<!-- commandline used: /cygdrive/c/VCDIMA~3/VCDXGEN track1.mpg track2.mpg track3.mpg -->
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="vcd" version="2.0">
  <info>
    <album-id></album-id>
    <volume-count>1</volume-count>
    <volume-number>1</volume-number>
    <restriction>0</restriction>
  </info>
  <pvd>
    <volume-id>VIDEOCD</volume-id>
    <system-id>CD-RTOS CD-BRIDGE</system-id>
    <application-id></application-id>
    <preparer-id/>
    <publisher-id/>
  </pvd>
  <sequence-items>
    <sequence-item src="track1.mpg" id="sequence-00"/>
    <sequence-item src="track2.mpg" id="sequence-01"/>
    <sequence-item src="track3.mpg" id="sequence-02"/>
  </sequence-items>
  <pbc>
    <playlist id="lid-000">
      <next ref="lid-001"/>
      <return ref="lid-end"/>
      <wait>5</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-00"/>
    </playlist>
    <playlist id="lid-001">
      <prev ref="lid-000"/>
      <next ref="lid-002"/>
      <return ref="lid-end"/>
      <wait>5</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-01"/>
    </playlist>
    <playlist id="lid-002">
      <prev ref="lid-001"/>
      <next ref="lid-end"/>
      <return ref="lid-end"/>
      <wait>5</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-02"/>
    </playlist>
    <endlist id="lid-end" rejected="true"/>
  </pbc>
</videocd>

 

Now,  say I want to customise my VCD with the following information:

  1. Album-id = TEST_VCD
  2. Volume-id = TEST_VCD
  3. Publisher-id = MICHAEL TAM - VITUALIS PRODUCTIONS
  4. Add CD-i files for CD-i compliance (click here for more information on how to add CD-i compliance)
  5. 2 second pause at the end of each track

Then, I would edit the above XML file into the following and save it:

<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/vcdimager/videocd.dtd">
<!-- commandline used: /cygdrive/c/VCDIMA~3/VCDXGEN track1.mpg track2.mpg track3.mpg -=nopbc -->
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="vcd" version="2.0">
  <info>
    <album-id>TEST_VCD</album-id>
    <volume-count>1</volume-count>
    <volume-number>1</volume-number>
    <restriction>0</restriction>
  </info>
  <pvd>
    <volume-id>TEST_VCD</volume-id>
    <system-id>CD-RTOS CD-BRIDGE</system-id>
    <application-id>CDI/CDI_VCD.APP;1</application-id>
    <preparer-id/>
    <publisher-id>MICHAEL TAM - VITUALIS PRODUCTIONS</publisher-id>
  </pvd>
  <filesystem>
    <folder>
      <name>CDI</name>
      <file src="cdi_imag.rtf" format="mixed">
        <name>CDI_IMAG.RTF</name>
      </file>
      <file src="cdi_text.fnt">
        <name>CDI_TEXT.FNT</name>
      </file>
      <file src="cdi_vcd.app">
        <name>CDI_VCD.APP</name>
      </file>
    </folder>
  </filesystem>
  <sequence-items>
    <sequence-item src="track1.mpg" id="sequence-00"/>
    <sequence-item src="track2.mpg" id="sequence-01"/>
    <sequence-item src="track3.mpg" id="sequence-02"/>
  </sequence-items>
  <pbc>
    <playlist id="lid-000">
      <next ref="lid-001"/>
      <return ref="lid-end"/>
      <wait>2</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-00"/>
    </playlist>
    <playlist id="lid-001">
      <prev ref="lid-000"/>
      <next ref="lid-002"/>
      <return ref="lid-end"/>
      <wait>2</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-01"/>
    </playlist>
    <playlist id="lid-002">
      <prev ref="lid-001"/>
      <next ref="lid-end"/>
      <return ref="lid-end"/>
      <wait>2</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-02"/>
    </playlist>
    <endlist id="lid-end" rejected="true"/>
  </pbc>
</videocd>
In this example the name of the XML file has been left as the default "videocd.xml".  If desired, there is no reason not to name it into something else.

To make the CUE/BIN image of our VCD, VCDXBUILD.EXE is used.  If the command in figure 4 is run then it will create the following:

  • CUE file named "testvcd.cue"
  • BIN file named "testvcd.bin"

If you run VCDXBUILD --help at the command console, you will get a full list of the switches you can use and you may want to change or add some other options.

Burn the CUE/BIN image onto CD-R and you will have your simple multitrack VCD.
Simple multitrack -- figure 4

The usage of VCDXBUILD with GNU VCDImager Tools GUI was described under "Method 2".

 

Discussion: PBC vs. no-PBC for simple multitrack VCDs

As I mentioned in the introduction, I stated that my opinion was that for simple multitrack VCDs, method two was the best one.  The main reason why I say this is because most modern stand-alone VCD and DVD players can play non-PBC simple multitrack VCDs with additional features.  Some of these features include:

A PBC enabled simple multitrack VCD does not add much additional features (otherwise it wouldn't be simple multitrack) but will disable most of the above additional hardware features.  Importantly, direct assess to the track by entering the track number will definitely not be present.  Of course, you can get all the above features again but manually turning off the PBC setting on the stand-alone player, but if you are going to do that, you might as well not have authored the PBC content in the first place.

 


Michael Tam <vitualis (at) michaeltam.com>
anti-spam device - replace (at) with @ to send me e-mail

(c) 20 December, 2002