Log in

View Full Version : Creating Interactive Menus for your CDs


Amit
17th September 2002, 18:41
Here is what I want to do:
I want to create interative menus on my SVCD so that I can directly play the stuff I want to.

Here is some general information about the question:
I was trying to rip TOM AND JERRY (an anime movie). This movie has 14 chapters and each chapter is an episode of around 7-8

mins only. I was able to rip the movie without any problems using D2S 1.0.9B3. The movie was made into 2 CD, where CD 1 has

chapters 1 to 7 and CD2 has chapters 8-14. I am testing it on Standalone APEX 1500 player.

Here's what I tried:
The following XML is modified by me for creating interative menu on this SVCD. If you notice, I have couple of

<segment-items> instead of just one which is used by D2S for the purpose of showing the TitlePicture. Also, there's only one

<sequence-item> and it has chapter markings which go to specific episodes on the CD.

Here's the problem:
When I play the CD created with the following XML, I was properly able to navigate to the menu screens. Also, when I press

the desired number on my key pad, I go to the right episode. The problem is that when I choose specific episodes, I want to

go back to the episode selection menu screen once the selected episode is played. Now, this works fine for the first 3

episodes but when I choose episode 4 or 5 or 6, the episode selection screen is not displayed but rather the next episode

starts playing. Does any one have any idea what am I doing wrong. Just for the information, after lot of trial and error I

came up with this XML, that works atleast with episodes 1,2,3 and the last episode (which is 7).

<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/vcdimager/videocd.dtd">
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="svcd" version="1.0">
<option name="svcd vcd30 mpegav" value="false"/>
<option name="svcd vcd30 entrysvd" value="false"/>
<option name="relaxed aps" value="false"/>
<option name="update scan offsets" value="false"/>
<info>
<album-id>TOM_AND_JERRY</album-id>
<volume-count>2</volume-count>
<volume-number>2</volume-number>
<restriction>0</restriction>
</info>
<pvd>
<volume-id>TOM_AND_JERRY</volume-id>
<system-id>CD-RTOS CD-BRIDGE</system-id>
<preparer-id>dvd2svcd</preparer-id>
</pvd>
<filesystem>
<folder>
<name>EXTRA</name>
<file src="G:\Temp\VCDXBuild_Script_1.xml">
<name>DVD2SVCD.XML</name>
</file>
<file src="G:\Anime\CD2\SVCDInfo.txt">
<name>SVCDINFO.TXT</name>
</file>
</folder>
</filesystem>
<segment-items>
<segment-item src="G:\Temp\menu1.mpg" id="segment-menu00"/>
<segment-item src="G:\Temp\menu2.mpg" id="segment-menu01"/>
<segment-item src="G:\Temp\menu3.mpg" id="segment-menu02"/>
<segment-item src="G:\Temp\menu4.mpg" id="segment-menu03"/>
</segment-items>
<sequence-items>
<sequence-item src="G:\Anime\CD2\bbMPEG_Muxed_File00.mpg" id="sequence-00">
<entry id="entry-chapt-01">0.000</entry>
<entry id="entry-chapt-02">465.210</entry>
<entry id="entry-chapt-03">903.610</entry>
<entry id="entry-chapt-04">1344.000</entry>
<entry id="entry-chapt-05">1816.000</entry>
<entry id="entry-chapt-06">2215.000</entry>
<entry id="entry-chapt-07">2640.000</entry>
</sequence-item>
</sequence-items>
<pbc>
<!-- menu -->
<selection id="menu-00">
<bsn>1</bsn>
<next ref="menu-01"/>
<return ref="end"/>
<default ref="chapter-01"/>
<timeout ref="chapter-01"/>
<wait>9</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="segment-menu00"/>
<select ref="menu-01"/>
</selection>
<selection id="menu-01">
<bsn>1</bsn>
<prev ref="menu-00"/>
<next ref="menu-02"/>
<return ref="menu-00"/>
<default ref="chapter-01"/>
<timeout ref="chapter-01"/>
<wait>9</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="segment-menu01"/>
<select ref="playlist-00"/>
</selection>
<selection id="menu-02">
<bsn>1</bsn>
<prev ref="menu-01"/>
<next ref="menu-03"/>
<return ref="menu-00"/>
<default ref="chapter-01"/>
<timeout ref="chapter-01"/>
<wait>9</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="segment-menu02"/>
<select/>
<select ref="playlist-01"/>
<select ref="playlist-02"/>
<select ref="playlist-03"/>
<select ref="playlist-04"/>
</selection>
<selection id="menu-03">
<bsn>1</bsn>
<prev ref="menu-02"/>
<return ref="menu-00"/>
<default ref="chapter-01"/>
<timeout ref="chapter-01"/>
<wait>9</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="segment-menu03"/>
<select/>
<select/>
<select/>
<select/>
<select/>
<select ref="playlist-05"/>
<select ref="playlist-06"/>
</selection>
<!-- menu end -->
<playlist id="playlist-00">
<prev ref="menu-01"/>
<next ref="menu-01"/>
<return ref="end"/>
<playtime>465.210</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-01"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-000">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-01">
<prev ref="menu-02"/>
<next ref="menu-02"/>
<return ref="end"/>
<playtime>903.610</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-02"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-001">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-02">
<prev ref="menu-02"/>
<next ref="menu-02"/>
<return ref="end"/>
<playtime>1344.000</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-03"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-002">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-03">
<prev ref="menu-02"/>
<next ref="menu-02"/>
<return ref="end"/>
<playtime>1816.000</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-04"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-003">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-04">
<prev ref="menu-02"/>
<next ref="menu-02"/>
<return ref="end"/>
<playtime>2215.000</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-05"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-004">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-05">
<prev ref="menu-03"/>
<next ref="menu-03"/>
<return ref="end"/>
<playtime>2640.000</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-06"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-005">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<playlist id="playlist-06">
<prev ref="menu-03"/>
<next ref="menu-03"/>
<return ref="end"/>
<playtime>3067.000</playtime>
<wait>0</wait>
<play-item ref="entry-chapt-07"/>
</playlist>
<!-- Dummy Playlist to return to main menu after the playtime of the selected playlist is over -->
<playlist id="playlist-006">
<prev ref="menu-00"/>
<next ref="menu-00"/>
<return ref="menu-00"/>
<wait>0</wait>
<play-item ref="segment-menu00"/>
</playlist>
<selection id="chapter-01">
<bsn>1</bsn>
<prev ref="menu-00"/>
<next ref="chapter-02"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="sequence-00"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-02">
<bsn>1</bsn>
<prev ref="chapter-01"/>
<next ref="chapter-03"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-02"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-03">
<bsn>1</bsn>
<prev ref="chapter-02"/>
<next ref="chapter-04"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-03"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-04">
<bsn>1</bsn>
<prev ref="chapter-03"/>
<next ref="chapter-05"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-04"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-05">
<bsn>1</bsn>
<prev ref="chapter-04"/>
<next ref="chapter-06"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-05"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-06">
<bsn>1</bsn>
<prev ref="chapter-05"/>
<next ref="chapter-07"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-06"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<selection id="chapter-07">
<bsn>1</bsn>
<prev ref="chapter-06"/>
<next ref="end"/>
<return ref="menu-00"/>
<timeout ref="end"/>
<wait>0</wait>
<loop jump-timing="immediate">1</loop>
<play-item ref="entry-chapt-07"/>
<select ref="chapter-01"/>
<select ref="chapter-02"/>
<select ref="chapter-03"/>
<select ref="chapter-04"/>
<select ref="chapter-05"/>
<select ref="chapter-06"/>
<select ref="chapter-07"/>
</selection>
<endlist id="end" rejected="true"/>
</pbc>
</videocd>

Any help provided will be appreciated.

Thanks
-Amit

UltimateDBZ
17th September 2002, 21:40
Your idea is interesting. This isn't the proper forum for it, however, as it doesn't concern DVD2SVCD...

smiller667
18th September 2002, 01:49
The forums over at vcdimager.org have some knowledgeable people for this sort of problem ...

Amit
18th September 2002, 03:25
Thanks guys, I have posted my question at VCDImager web forums. I hope someone helps me out.

Thanks for your help.

-Amit