DVD Studio Pro 2 - Subtitles

October 13, 2003

Subtitles with DVD Studio Pro 2

By: Alex Alexzander


DVD Studio Pro 2 allows for up to 32 subtitles streams on any given track. This article will focus on basic use of subtitles. No details of the STL format developed by Spruce Technologies will be mentioned in the article. Instead, this article will focus on creating a simple menu of choices for subtitles you can easily create through the track window. Many questions have been raised by a few regarding subtitle streams. It has proved difficult to explain the use of these streams and how to create a menu of subtitle options effectively in a simple forum. This article will get you started.

The entire focus here will be on creating optional subtitle streams for a single track. I'll use English twice, once with a subtitle and once without. I'll also create a basic subtitle for French, Spanish, Japanese, and Navajo. I won't actually write subtitles in these languages, but instead I will simply create the streams and edit them to state the language as they are intended.

I will explain in basic detail how to create a menu of subtitle options and how to configure the advanced tab properties of each button asset. In addition, I will briefly show a few sample scripts to help with navigation of these menus. The examples I will use for the script are almost exactly the same as scripts already detailed in the user manual of Studio Pro 2. If you want more information regarding the scripts, you may reference the user manual pages 395 - 449.

Getting Started

Take a look at the two images above. I have a menu one and a menu two. Menu one is set to play the movie with what will appear to have no subtitle stream. Actually, I have setup a stream for this play button, which is simply blank. It only exists so that Same as Disc doesn't inadvertently pre-load it with a stream played in a previous play action.

The language button points to a language menu. This menu has English again, this time set to play with a subtitle stream that is loaded with text. The other languages are each also loaded with text and set to force view the subtitle streams. This means that you do not have to turn on and off your subtitles with the DVD player. Forcing the view does this action for you. This menu structure will allow a single track to play with our without a subtitle for English and with a subtitle for French, Spanish, Japanese, and Navajo. The languages themselves are not important for this example.

Adding Subtitle Streams

Place the play head on your track and double-click the subtitle stream area starting with S1. This will place a five-second stream asset into the stream area. Any stream layer you happen to be double-clicking into will create a default five-second subtitle ready for you to edit with your own text. On my own, I started with the S1, and entered in plain English. The gold button all the way to the left is your view option. To the right of that is the language drop menu. This is used when creating a stream that can be used with your DVD player's setup and remote functions. As you can see, mine is set with English (EN), French (FR), Spanish (ES), Japanese (JA) and Navajo (NV). My DVD Player set-top box has three subtitle sets available in my set-top's setup function. They are English, French and Spanish. When you set these language streams, you are allowing the use of the remote control to govern which stream will be used with the track being played. This is not a forced action. We will create a forced view with the button property inspector. My set-top box doesn't support Japanese(JA) and Navajo(NV) directly, however, that doesn't mean this will not work. This is where our menu of languages and forced view come into play. Take notice I have set S6 with a tiny stream. That is there to prevent a problem you may encounter, which I will warn you about later.

I started each subtitle stream at the start of the track for this example, and by simply holding the mouse at either end of the gold subtitle stream I can extend or shorten the length of time each subtitle will last in time-length on my video track. You will have many of these, one for each sentence you wish to have text for. They will lay from left to right and stay on one track per language. You may have multiple streams for multiple languages, but only one is able to play at any one time.

Above subtitle streams, you can see I have two audio tracks. The video track and the two audio tracks are all available with the tutorials you received in the box with Studio Pro 2. I use them here so you can follow along if you like. Take note that I have set the English (EN) and French (FR) audio tracks. Again, simply by defining the (EN) and (FR) in the Audio Track, I am allowing these tracks to interact with your own set-top box's setup options. When you set up your DVD player at home, you should have at least, English, French, and Spanish. If you do not specifically force a stream through a button assignment's advanced properties, you are free to use the remote in combination with simply setting the proper languages in the audio and subtitle settings right here on the track screen.

We are going to force each track and stream so that the user only needs to use our menu. This is done through the use of buttons and their advanced settings through the property inspector. You will create a button for each language and use that button to force audio and subtitle streams. If you have ten languages, you will create ten buttons.

Create and name a series of buttons, one for each subtitle stream you wish to allow the user to select from.

Select that button, and note that the property inspector for that button appears. Choose the Advanced tab. Here you can define a specific angle, audio stream, and subtitle stream. My audio stream 2 and subtitle stream 2 are both defined as my French streams in the track window. Normally, this entire section of the buttons property inspector is set to not set. When you define buttons as we are, you can manually set them and force the subtitle view. Notice to the right of the subtitle stream is a view check-box. Selecting that box forces the subtitle stream to appear during playback of the track if this button is used to play that track. Because this is definable on a per-button basis, you will go on to create a button for each language in which you specifically define which audio and subtitle streams will be played through that button's property inspector.

For your own menus, define each language button to the specific audio and subtitle streams you have created for those languages. I have five languages in my example, so I created five buttons as well as a return button to go back to the main menu. The main menu has a play button as well but is set to English and subtitle stream six (S6), which is not pre-loaded with text. My subtitle stream six holds a single subtitle asset which is blank. It's only there to allow me to define the fact that I don't want any other subtitle to play by playing a blank one. You will do this so that when you choose one language, and then another, the un-set property of not set or same as disk doesn't inadvertently play the former subtitle track on the track where no subtitle is manually set.

Test your buttons with the simulator.

We could stop right here. That is basically all there is to defining and forcing a subtitle stream. However, when you make two menus for the use of defining streams on a per-button basis, you will likely create another problem for yourself. When the track is done playing, which menu will it return to: the language menu or the start menu? We also have a problem in that using the menu button on your remote will also send you back to the start menu and not the language menu, if that is the menu you came from. This is also a common problem we may as well also solve while we're at this. To do this, we will create a few scripts that set a GPRM 0 value to 1 or 2, depending on which menu you use to play the track. This way, when you complete the track, the end jump point knows the proper menu from which it came from.

Defining a Menu Value with GPRM 0

Here's a brief overview of what we need to do to accomplish this. Take a look at the outline view. My DVD is named SUBTITLETEST. The first play, however is not set to the start menu named start menu. Instead, my first play is pointing to a script in the scripts area called set 1 jump to start. The purpose of this script is to set GPRM 0 to a value of 1, then jump to the start menu.

When we create a script for the first time inside Studio Pro 2, we start with a single command called NOP, which stands for No Operation. Simply delete that line by selecting it and clicking on the minus sign.

Select line one and the property inspector will now become a script command windowed interface. Start from the top and copy mine exactly as you see it. Our command, mov GPRM 0 ,1 is saying set GPRM 0 to a value of 1. We have the use of eight GPRM registers; however, we will be working with just one. The next line is a simple Jump command. Select Jump > then select the first menu. My first menu is the standard menu that simply has a play button on it and a choice for other languages.

From this, you can see that our first play will always set GPRM 0 to a value of 1.

Now, playing the first menu sets GPRM 0 to 1. We want the action of going to the languages menu from the start menu to change that same GPRM to a value of 2. The purpose here is that when the track is done playing a script will determine the value of GPRM 0. If it is 1, it will go to the start menu, but if it is 2, it knows it came from the optional language menu and shall return to that menu.

Here you can see the work-flow. The language button is not pointing to a menu; instead it points to a script. That script is like the first script except that it sets the GPRM 0 value to 2, then jumps to the language menu.

Now, playing a track from the start menu sets GPRM 0 to 1 and pressing the language button on the start menu sets GPRM 0 to 2. We will set the movie track itself to return to the proper menu by using a conditional script. Instead of setting the track's end jump back to the start menu, we will set the end jump to a script named menu return script. The menu return script will determine the final end jump location based on the GPRM 0 value of 1 or 2.

Take a look at our simple script here. There are only two lines: Jump to start menu if GPRM 0 = 1 and jump to language menu if GPRM 0 = 2.

You can see from the example here. We are setting a conditional jump command. The jump to is determined by GPRM 0. I used this Script command box twice: once for each of the two lines in the script above.

The last areas you want to configure are the three remote buttons of: Title, Menu, and Return. Title may be set to go to the first menu, but Menu and Return should return only to the menu they came from. To do this, you go back to your Outline Tab > Select the DVD asset itself and set the Property Inspector for Title, Menu, and Return. I set my title to go to the main menu. However, I set return and menu to execute the script named menu return script, which determines the condition of the GPRM 0 value to decide which menu to return to.


You can create simple audio and subtitle streams that interact with your set-top box's remote control. These are based on the few languages your DVD player has as optional choices for you to preset. Most movies have a couple of subtitle streams for Spanish or French for example. To use these, use the audio and subtitle stream language settings from the track window and your remote control or setup on the DVD player itself.

For slightly more advanced settings of director commentary or other languages, you can use various buttons that play exactly the same video track with your defined audio and subtitle streams. I set aside a separate menu to assist in that kind of playback which we saw here.

Scripts can be used to help you create a more elegant navigation system when using more than one menu to play various options of your video asset.

Okay... that's it folks! -- Alex Alexzander

copyright © www.kenstone.net 2003


All screen captures, images, and textual references are the property and trademark of their creators/owners/publishers.