Krazycheck.com
Previous entry Next entry

Some DVD authoring fun

Saturday, January 14, 2012

Well, here it goes. This is some of the programming that goes in behind the scenes in authoring a multi-language, multi-subtitled DVD. I realize most who read this won’t understand hardly any of it, but it’s a post to help remember what I did for future reference. As well as possibly be a help to someone else out there trying to figure it all out! Enjoy!

The Problem:
In creating DVD’s using Sonic Scenarist, the Subpicture (Subtitle) Menu is designed for use in the Video Title Set (VTS), not the Video Manager (this is not Sonic Scenarist’s problem—it’s the DVD format that has the problems.) However, the Stranger Interactive (and the STR) DVD need the Subpicture Menu to reside in the Video Manager (as each VTS is set for each chapter represented) to save duplicating the Subtitle Menu 16 times.

So, to get around that problem, one needs to use GPRM’S (General Parameters) to track the Subpicture Status (whether on or off.) One problem with this is that if the user selects SUBTITLES on his remote during a video clip (setting the SPRM (System Parameters) to “64”,) the GPRM is not updated, and hence, upon playing the next video, the subtitle selection will default to the setting BEFORE the user changed it with his remote.

The Solution:
Before a video clip is played, it needs to check the GPRM if the subtitles are ON or OFF. At the end of a clip, the SPRM needs to be checked and adjust the GPRM if the Subtitle setting has changed.

The Subtitle Menu just sets the GPRM accordingly.

My Variable Settings:
GPRM0 = subtitles (0=off, 1=on, 2=Spanish) (By default, a third subtitle track (Spanish “Text on Screen”) is shown if no subtitles are selected with Spanish audio. This puts subtitles up when there is English text on screen.)
GPRM1 = language (or Audio track - but I match menu language to the audio language) (0=English, 1=Spanish)

 
 

First PGC

Pre

1: Mov GPRM0, 0

2: Mov GPRM1, 3

3: Mov GPRM3, 64

4: Mov GPRM4, 65

5: Mov GPRM5, 66

6: Mov GPRM6, 67

7: Mov GPRM7, 1

8: Mov GPRM8, 2

9: Mov GPRM9, 3

10: Mov GPRM10, 4

Post

1: JumpSS TitleMenu

ENGLISH MENU STRUCTURE

LogoMainMenu (English) Title Menu

Pre

1: if ( GPRM1 == 1 ) LinkPGCN en_SP_MainMenu-t

2: if ( GPRM11 == 1 ) LinkPGCN en_MainMenu-t

3: Mov GPRM1, 0

4: Mov GPRM11,1

Cell

LinkPGCN en_MainMenu-t

Button Commands:

1. Link PGCN PGC_ToCh01

...

3: LinkPGCN en_lanENG_Languages-t-pgc

4: LinkPGCN en_subOFF_Subtitles-t-pgc

MainMenu (English)

Pre

1: if ( GPRM1 == 1 ) LinkPGCN en_SP_MainMenu

Button Commands:

1. Link PGCN PGC_ToCh01

...

3: LinkPGCN en_lanENG_Languages-t-pgc

4: LinkPGCN en_subOFF_Subtitles-t-pgc

en_subOFF_Subtitles (English)

Pre

1: Mov GPRM1,0

2: if ( GPRM0 == 2 ) Mov GPRM0, 1

3: if ( GPRM0 == 1 ) LinkPGCM en_subENG_Subtitles

Buttons

1: { Mov GPRM0, 1 ; LinkPGCM en_subENG_Subtitles-t-pgc }

2: { Mov GPRM0, 2 ; LinkPGCM en_SP_subOFF_Subtitles-t-pgc }

3: LinkPGCM en_lanENG_Languages-t-pgc

4: LinkPGCM 3_LogoMainMenu_en_1-t-pgc

en_Subtitles (English)

Buttons

1: { Mov GPRM0, 2 ; LinkPGCM en_SP_subOFF_Subtitles-t-pgc }

2: { Mov GPRM0, 0 ; LinkPGCM en_subOFF_Subtitles-t-pgc }

3: LinkPGCM en_lanENG_Languages-t-pgc

4: LinkPGCM 3_LogoMainMenu_en_1-t-pgc

en_lanENG_Language (English)

Pre

1: Mov GPRM1, 0

Button Commands:

1. LinkPGCN en_SP_Languages-t-pgc

2. LinkPGCN en_subOFF_Subtitles-t-pgc

3. LinkPGCN 6_LogoMainMenu_en_1-t-pgc

6_sp_MainMenu (English)

Button Commands:

1. Link PGCN PGC_ToCh01

...

3: LinkPGCN en_SP_lanENG_Languages-t-pgc

4: LinkPGCN en_SP_subOFF_Subtitles-t-pgc

en_SP_subOFF_Subtitles

Pre:

1: Mov GPRM1, 1

2: if ( GPRM0 == 1 ) Mov GPRM0, 2

3: if ( GPRM0 == 2) LinkPGCN en_SP_subSPN_Subtitles-t-pgc

Button Commands:

1: { Mov GPRM0, 1 ; LinkPGCN en_subOFF-t-pgc }

2: { Mov GPRM0, 2 ; LinkPGCN en_SP_subSPN_Subtitles-t-pgc }

3: LinkPGCN en_SP_lanSPN_Languages-t-pgc

4: LinkPGCN en_SP_MainMenu-t-pgc

en_SP_subSPN_Subtitles

Button Commands:

1: { Mov GPRM0, 1 ; LinkPGCN en_subOFF-t-pgc }

2: { Mov GPRM0, 0 ; LinkPGCN en_SP_subOFF_Subtitles-t-pgc }

3: LinkPGCN en_SP_lanSPN_Languages-t-pgc

4: LinkPGCN en_SP_MainMenu-t-pgc

en_SP_lanSPN_Languages

Pre:

1: Mov GPRM1, 1

Button Commands:

1: { Mov GPRM1, 0 ; LinkPGCN en_lanENG_Languages-t-pgc }

2: LinkPGCN en_SP_subOFF_Subtitles-t-pgc

3: LinkPGCN en_SP_MainMenu-t-pgc

Chapter Menu English

Pre:

1: if ( GPRM1 == 1 ) LinkPGCN en_SP_ch01-t-pgc

Button Commands:

1: JumpVTS_PTT 01-1…@Title_1

...

6: JumpSS TitleMenu

en_EndOfDisc

Pre

1: if { GPRM1 == 1 } LinkPGCN en_EndOfDisk1-t-pgc

Button Commands

1: LinkPGCN en_LogoMainMenu-t-pgc

SPANISH MENU STRUCTURE

LogoMainMenu (Spanish) Title Menu

Pre

1: if ( GPRM1 == 0 ) LinkPGCN sp_EN_MainMenu-t

2: if ( GPRM11 == 1 ) LinkPGCN sp_MainMenu-t

3: Mov GPRM1, 1

4: Mov GPRM11,1

Cell

LinkPGCN sp_MainMenu-t

Button Commands (English):

1: LinkPGCN PGC_ToCh14

...

3: LinkPGCN sp_lanSPN_Languages-t-pgc

4: LinkPGCN sp_subOFF_Subtitles-t-pgc

MainMenu (Spanish)

Pre

1: if ( GPRM1 == 0 ) LinkPGCN sp_EN_MainMenu

Button Commands:

1: LinkPGCN PGC_ToCh14

...

3: LinkPGCN sp_lanSPN_Languages-t-pgc

4: LinkPGCN sp_subOFF_Subtitles-t-pgc

sp_subOFF_Subtitles (Spanish)

Pre

1: Mov GPRM1,1

2: if ( GPRM0 == 1 ) Mov GPRM0, 2

3: if ( GPRM0 == 2 ) LinkPGCM sp_subENG_Subtitles

Buttons

1: { Mov GPRM0, 1 ; LinkPGCM sp_EN_subOFF_Subtitles-t-pgc }

2: { Mov GPRM0, 2 ; LinkPGCM sp_subSPN_Subtitles-t-pgc }

3: LinkPGCM sp_lanSPN_Languages-t-pgc

4: LinkPGCM 3_LogoMainMenu_sp_1-t-pgc

sp_Subtitles (Spanish)

Buttons

1: { Mov GPRM0, 1 ; LinkPGCM sp_EN_subOFF_Subtitles-t-pgc }

2: { Mov GPRM0, 0 ; LinkPGCM sp_subOFF_Subtitles-t-pgc}

3: LinkPGCM sp_lanSPN_Languages-t-pgc

4: LinkPGCM 6_LogoMainMenu_sp_1-t-pgc

sp_lanENG_Language (Spanish)

Pre

1: Mov GPRM1, 0

Button Commands:

1. LinkPGCN sp_EN_lanENG_Languages-t-pgc

2. LinkPGCN sp_subOFF_Subtitles-t-pgc

3. LinkPGCN 6_LogoMainMenu_sp_1-t-pgc

6_en_MainMenu (Spanish)

Button Commands:

1. Link PGCN PGC_ToCh01

...

3: LinkPGCN sp_EN_lanENG_Languages-t-pgc

4: LinkPGCN sp_EN_subOFF_Subtitles-t-pgc

sp_EN_subOFF_Subtitles

Pre:

1: Mov GPRM1, 0

2: if ( GPRM0 == 2 ) Mov GPRM0, 1

3: if ( GPRM0 == 1 ) LinkPGCN sp_EN_subENG_Subtitles-t-pgc

Button Commands:

1: { Mov GPRM0, 1 ; LinkPGCN sp_EN_subENG_Subtitles-t-pgc }

2: { Mov GPRM0, 2 ; LinkPGCN sp_subOFF_Subtitles-t-pgc }

3: LinkPGCN sp_EN_lanSPN_Languages-t-pgc

4: LinkPGCN sp_EN_MainMenu-t-pgc

sp_EN_subSPN_Subtitles

Button Commands:

1: {Mov GPRM0, 2 ; LinkPGCN sp_subSPN_Subtitles-t-pgc}

2: {Mov GPRM0, 0 ; LinkPGCN sp_EN_subOFF_Subtitles-t-pgc}

3: LinkPGCN sp_EN_lanSPN_Languages-t-pgc

4: LinkPGCN sp_EN_MainMenu-t-pgc

sp_EN_lanSPN_Languages

Pre:

1: Mov GPRM1, 0

Button Commands:

1: LinkPGCN sp_lanSPN_Languages-t-pgc

2: LinkPGCN sp_EN_subOFF_Subtitles-t-pgc

3: LinkPGCN sp_EN_MainMenu-t-pgc

Chapter Menu Spanish

Pre:

1: if ( GPRM == 0 ) LinkPGCN sp_EN_ch01-t-pgc

Button Commands:

1: JumpVTS_PTT 01-1…@Title_1

...

6: JumpSS TitleMenu

sp_EndOfDisc

Pre

1: if { GPRM1 == 1} LinkPGCN en_EndOfDisk1-t-pgc

Button Commands

1: LinkPGCN sp_LogoMainMenu-t-pgc

Video

Pre

1: if ( GPRM1 == GPRM15 ) SetSTN audio=1

2: if ( GPRM0 == GPRM15 ) SetSTNsubpicture=1:OFF

3: if ( GPRM0 == GPRM7)SetSTNsubpicture=1:ON

4: if ( GPRM1 == GPRM7 ) SetSTN audio=2, subpicture=2:ON

5: if ( GPRM0 == GPRM8 ) SetSTNsubpicture=3:ON

Post

1: SetHL_BTNN HL_BTNN=3

2: if ( GPRM3 > SPRM2 ) Mov GPRM0, 0

3: if ( GPRM3 == SPRM2 ) Mov GPRM0, 1

4: if ( GPRM4 == SPRM2 ) Mov GPRM0, 0

5: if ( GPRM5 == SPRM2 ) Mov GPRM0, 2

6: CallSS RSM=1, RootMenu

I’m sure there are other ways of going about this, but for now that’s the best I could figure out.

One thing I learned today:
Don’t make a video clip for a DVD, that starts ‘right now.’ Allow at least a second of black before the clip action, as some DVD players have a little ‘lag time’ in there. If you start too soon (speech within the first 10 frames) you’ll loose words!
This would be not such a big deal, except the DVD in question has 110 video clips, each with both Subtitles and Closed Captions, and a 4 day authoring time (there was a learning curve in there for this one.) And to fix, I need to put some time on the head of each clip (and tail, while I’m here), render that to AVI, then convert that to M2V, change and re-output all my captions (timing is now off) and then the subtitles. Then my hope is that if I clear my Encoded Cache files, it’ll all work right when I open Scenarist. We’ll see…

 

 

Back to the main page.

Copyright 2006 John Krajec