Een Play All script voor een Studio DVD-image met PgcEdit
Het onderstaande is gebaseerd op een tutorial van ene Dave Tong welke een Play-All script voor Studio heeft gepubliceerd waarin gebruik wordt gemaakt van IFOEdit en is te vinden op http://davetong.tripod.com/PlayAll/. Ook tussen de grote verzameling tutorials op http://www.videohelp.com is deze tutorial terug te vinden en een vertaling door Ton Brouwer is op 17/12/04 op mijn website geplaatst bij de 'Bijdragen van anderen'.
In eerste instantie ben ik begonnen met een directe vertaling. Daarna heb ik de tekst enigszins naar eigen idee aangepast en aangevuld met enkele opmerkingen, verduidelijkingen en screenshots. Tenslotte heb ik de screenshots en handelingen die uitgevoerd moeten worden aangepast aan het gebruik van PgcEdit. Persoonlijk vind ik die IFO-editor een stuk gebruiksvriendelijker en prettiger werken dan IFOEdit en het sluit mooi aan bij mijn workshop 'Switched Menus'. Het Play-all script is zelfs in combinatie met de daarin uitgelegde techniek te gebruiken.
Het probleem
Je hebt een verzameling video’s. Je wilt in staat zijn deze allemaal stuk voor stuk te zien, dus na iedere video terugkeren naar het menu en je wilt de keuze hebben ze allemaal achter elkaar af te spelen (Play All). Studio biedt je slechts de mogelijk voor het één of voor het ander.
De oplossing
Het is mogelijk dit voor elkaar te krijgen door, nadat je de DVD-image met Studio hebt gemaakt (zonder te branden), het IFO bestand te wijzigen.
Een DVD wordt aangestuurd door middel van een eenvoudige programmeertaal. Er zijn PRE commando’s, welke uitgevoerd worden voordat een bepaalde video start, en POST commando’s welke na het vertonen van die video worden uitgevoerd.
De bedoeling is om enkele extra commando’s toe te voegen om de DVD te laten doen wat wij willen. We plaatsen een waarde in een register en controleren later deze waarde. Als het register deze specifieke waarde heeft dan zullen we naar het volgende hoofdstuk gaan. Als het register deze waarde niet heeft dan gaan we terug naar het menu.
Je hebt hiervoor het programma PgcEdit (http://download.videohelp.com/r0lZ/pgcedit/) nodig. Dit is een krachtige tool waarmee je het IFO bestand van elke (onbeveiligde) DVD kunt herprogrammeren.
Maak in Studio eerst een DVD met een zeer korte Titel (minimaal 1 seconde en 5 frames want anders zal Studio de chapter-markeringen niet kunnen plaatsen) met daarachter drie AVI’s. Om deze procedure te testen kun je eerst een DVD maken met drie korte AVI's/Scènes.
Die Titel dient voor het starten van de Play All en mag gewoon zwart zijn. De serie video's begint dus met die Titel. Het mag ook een (korte) video zijn of een foto of een fade-out van het menu of een overgang van het menu naar de film. Laat je fantasie maar werken. Deze wordt dus alleen getoond als je voor de Play All optie in het menu kiest.
Je kunt er ook voor kiezen deze Titel niet te tonen als voor Play All wordt gekozen (is eigenlijk nog veel mooier) en dan maakt het natuurlijk niet uit wat er op de tijdlijn staat. Hoe dat moet wordt verderop uitgelegd.

Maak een menu aan het begin van de tijdlijn en maak knoppen voor de Titel (de Play All) en voor de hoofdstukken. Zet een markering voor ‘Teruggaan naar menu’ aan het eind van de Titel en na ieder hoofdstuk.
Maak tenslotte een DVD-image zonder te branden.
Start PgcEdit, navigeer via ‘File/Open DVD’ naar de door Studio aangemaakte map VIDEO_TS welke zich in de map Auxiliary Files onder [project name]/DVD/VIDEO_TS bevindt en klik op ‘OK’.
Selecteer in het linkervenster VTST 1,1. Dat is de eerste korte Titel in de tijdlijn.
In het rechtervenster zie je bij de POST commands (zeer waarschijnlijk één) het CallSS commando. Daarin staat de instructie om terug te keren naar het menu: (CallSS) Call the VTSM Root menu .......
Hieronder een afbeelding van dit venster:

Selecteer de regel met het CallSS commando en klik op de knop ‘Add before’ in de knoppenbalk onderin het venster van PgcEdit. Hiermee wordt een NOP instructie toegevoegd. Dubbelklik daarna op de NOP instructie om de command-editor te openen.
Verander de waarde 00 00 00 00 00 00 00 00 in 71 00 00 08 00 01 00 00. Dat is de code om de inhoud van register 8 in de waarde 1 te wijzigen. Druk na de wijziging eerst op Enter alvorens het venster met OK te sluiten. De wijziging kan ook geheel via het menu en de andere invulvelden in deze command-editor worden ingevoerd. Maar rechtstreeks intoetsen in het veld gaat ook eenvoudig en snel.

Hier is gekozen voor register 8 omdat deze verder nergens in de DVD wordt gebruikt. Je bent vrij om te verifiëren of deze in jouw geval ook veilig is te gebruiken. Wijzig eventueel de 08 in een andere waarde in dit commando en in alle andere commando’s die nog worden aangepast.
Selecteer opnieuw de regel met het CallSS commando, open weer de command-editor en kies uit de menubalk voor 'Jump and Call/From VTST title/to VTST title in same VTS/JumpVTS_TT' en vul dan bij 'Jump to the entry PGC of TTN' de waarde 2 in.

Druk op OK. Nu zou je scherm als volgt uit moeten zien:

Dat was het voor wat betreft het eerste hoofdstuk waarmee de Play All wordt geregeld.
Let op! Als je voorafgaande aan het menu bijvoorbeeld een introductiefilmpje hebt geplaatst, een zogenaamde FirstPlay, dan is VTST1,1 (Title 1) dat betreffende filmpje en moet je dus beginnen met VTST1,2 (Title 2). Er verandert verder niets, behalve dat natuurlijk nu Title 3 het eerste 'echte' hoofdstuk is waarheen gesprongen zal moeten worden.
Het is overigens ook mogelijk, en dat is eigenlijk een veel mooiere oplossing, er voor te zorgen dat de extra Titel niet wordt getoond. In dat geval moet je als PRE commando register 8 aanpassen en ook als PRE commando de JumpVTS_TT uitvoeren.
De POST commando's mag je dan verwijderen. Je mag ze ook laten staan, ze worden in deze situatie toch nooit uitgevoerd.
In PgcEdit zien de PRE commando's er dan exact hetzelfde uit als de POST commando's zoals in de vorige screenshot wordt getoond.
Nu moeten we de andere hoofdstukken nog aanpassen. Voeg in ieder hoofdstuk behalve de laatste een nieuw POST commando toe en gebruik de command-editor om de waarden in 00 D1 00 08 00 00 00 03 te wijzigen. Dit commando betekent het volgende: “Als register 8 is ongelijk aan 0 (nul) ga dan naar instructie 3”.
Maak vervolgens een derde POST commando maar dan na het command CallSS (Add after) en wijzig die in JumpVTS_TT (zoals uitgelegd bij de eerste Titel) naar de volgende Title. Ik ga er van uit dat de Titles in numerieke volgorde staan maar er is geen reden waarom dat zo zou moeten zijn.

Hierboven hoe het er voor Title 2 uit moet zien. Voor Title 3 geldt hetzelfde maar dan moet de 'Jump' uiteraard naar Title 4 verwijzen.
In laatste hoofdstuk moeten de waarde van register 8 op 0 (nul) worden gezet voordat deze naar het menu terugkeert. Voeg een nieuw POST commando toe en wijzig de hexadecimale code in 71 00 00 08 00 00 00 00

Als door middel van de afstandsbediening via de menuknop naar het menu wordt teruggekeerd zal het POST commando van het laatste hoofdstuk nooit worden uitgevoerd. De waarde van register 8 zal dan op 1 blijven staan en de Play All functie zal geldig blijven totdat het laatste hoofdstuk tot het einde zal worden afgespeeld. Dus ook als we daarna een hoofdstuk kiezen om af te spelen zal deze niet aan het einde daarvan naar het menu terugkeren maar doorgaan met het volgende hoofdstuk. Om dat te voorkomen moeten we regelen dat elke keer dat het menu wordt gestart de waarde van het register 8 standaard op 0 wordt gezet.
Dat kun je op dezelfde manier doen zoals in het laatste hoofdstuk is gedaan maar veel makkelijker is een copy/paste aktie.
Rechtsklik op het in het laatste hoofdstuk aangemaakte commando "Set gprm(8) =(mov) 0" en kies voor Copy. Selecteer aan de linkerkant VTSM 1. Rechtsklik in het rechterscherm op het tweede PRE-commando (Set gprm(1) =(mov) 99) en kies voor "Paste after". Het resultaat ziet er dan als volgt uit:

Kies nu voor 'File/Save DVD' vanuit het menu vanPgcEdit.
Dat was het. Test je DVD-image nu met een programma zoals PowerDVD. Overtuig je ervan dat de navigatie werkt zoals je verwacht. Als alles naar wens is kun je nu de DVD branden vanuit Studio of met een ander brandprogramma.
Zoals reeds gezegd is deze techniek uitstekend te combineren met de techniek die besproken wordt in mijn workshop Switched Menus. De daarin besproken aanpassingen met betrekking tot de navigatie zijn ook weer in deze Play All techniek te gebruiken. En zo kun je met enkele niet zo heel moeilijke aanpassingen met behulp van PgcEdit toch heel geavanceerde menustructuren in Studio aanmaken.
april 2005
Johan de Jong