Implementeren van een "Play All" optie bij Pinnacle Studio

opmerking: Onderstaande techniek wordt ook uitgelegd in de Workshop 'Play All' welke is te vinden bij de Worskhops op deze site. In die workshop wordt echter gebruik gemaakt van de Ifo-editor PgcEdit. Dus als je de voorkeur geeft aan PgcEdit boven IFOEdit dan kun je de instructies van die worskhop gaan volgen.

Introductie

Standaard is het met Studio niet mogelijk om een "Play All" optie te implementeren. De DVD authoring functie van Studio geeft na een hoofdstuk twee keuzes: ga terug naar het menu, of speel het volgende hoofdstuk. Deze keuzes zijn dan vastgelegd op de DVD en kunnen niet meer via de DVD speler be‹nvloed worden. Wil je toch de keuze mogelijkheid geven om de hele film te spelen of deze per hoofdstuk te bekijken, dan kan dit alleen door een film twee keer op een DVD te plaatsen, één keer met en één keer zonder een hoofdstuk indeling. Dit halveert de maximale speelduur van een DVD en dat is natuurlijk jammer.

Door echter handmatig de DVD image te authoren, voordat deze naar schijf wordt gebrandt, kan wel degelijk een "Play All" functie geïmplementeerd worden. De besturing van een DVD wordt geregeld via commando's (of instructies). Voor het afspelen van ieder hoofdstuk worden één of meer PRE commando's uitgevoerd en na elk hoofdstuk één of meer POST commando's.
Met de standaard Studio implementatie zal er per hoofdstuk één POST commando aanwezig zijn. Dit commando zorgt ervoor dat het volgende hoofdstuk gespeeld wordt, of dat teruggekeerd wordt naar het menu. Dit is dus afhankelijk van de optie welke gekozen is bij het maken van het menu.
Het idee is nu om zelf enkele POST commando's toe te voegen dan wel aan te passen. Hiermee kan dan een test uitgevoerd worden of op de DVD speler in het menu voor de "Play All" optie is gekozen.
In de voorbeelden is uitgegaan van één enkel menu. Er is echter geen reden om aan te nemen dat de implementatie niet met submenu's gerealiseerd kan worden.
Voor het aanpassen van de authoring bestanden (de IFO bestanden) hebben we een programma nodig zoals IfoEdit. Dit freeware programma kan opgehaald worden vanaf de site http://www.ifoedit.com.

Deze beschrijving gaat uit van Pinnacle Studio, maar het principe kan zonodig natuurlijk ook gebruikt worden bij andere video editing paketten.

De implementatie

Maak het project zoals je gewend bent, maar voeg aan het begin een extra titel toe, bijvoorbeeld met de tekst "Speel de gehele film". Voeg dan voor deze titel een menu toe en maak van de titel het eerste hoofdstuk. Maak verder een hoofdstuk indeling naar keuze.
Na ieder hoofdstuk, dus ook na de extra titel, moet naar het menu worden teruggekeerd.
Maak tenslotte een image door bij "Film maken" voor "Schijf" te kiezen en dan bij "Instellingen" onder "Brandopties" te kiezen voor "Schijfimage maken".

Als Studio klaar is met het maken van de image, kan je Studio afsluiten en IfoEdit starten.
Druk op de "Open" knop en zoek naar het VTS_01_0.IFO bestand. Dit staat in de map: Auxilary Files/[projectnaam]/DVD/Video_ts. Lees hier voor projectnaam de naam van je Studio project.
IfoEdit zal vermoedelijk klagen over het feit dat sommige namen niet in uppercase zijn. Laat deze echter zoals ze zijn.
Het IfoEdit window bestaat uit twee gedeeltes. In het bovenste gedeelte maak je een selectie, waarna de inhoud van die selectie in het onderste gedeelte getoond wordt. In dit onderste gedeelte kan je dan de gewenste wijzigingen aanbrengen.
Selecteer in het bovenste gedeelte van het IfoEdit window de regel:
VTS_PCGITI -Video Title Set Program Chain Information Table
Na selectie zal een + (plus) teken verschijnen. Klik daarop en het zal expanderen met één regel voor ieder hoofdstuk dat je video bevat. Deze hebben als naam VTS_PCG_n, waarin n het nummer van het hoofdstuk is.
Selecteer de regel VTS_PCG_1. Dit is de set commando's voor het hoofdstuk dat alleen je extra titel bevat.
Blader in het onderste scherm tot je de "PCG Command Table" vindt. Deze zal er (ongeveer) zo uitzien:



We gaan hier een POST commando toevoegen waarmee de waarde "1" in een register geplaatst wordt.
Voor dit register moet je er een kiezen dat niet in gebruik is. In mijn situatie is dat onder meer register 8.
Je kan een ander register kiezen, mits dit niet elders in gebruik is. In dat geval moet je bij de volgende aanwijzingen in plaats van 8 de door jou gekozen waarde gebruiken.
Selecteer de regel met het POST commando (CallSS VTSM) en klik met de rechter muisknop op deze regel.
Er verschijnt dan een popup window met verschillende commando's. Kies voor "Insert Command". Hierdoor wordt voor het bestaande POST commando een nieuw POST commando met een NOP (No Operation) instructie toegevoegd.
Dubbelklik op deze NOP regel. Hiermee wordt het HexEdit window van IfoEdit geopend.
Vervang de waarde 00 00 00 00 00 00 00 00 door 71 00 00 08 00 01 00 00 en klik op OK. Met deze instructie plaatsen we de waarde "1" in register 8.
Selecteer vervolgens de regel met CallSS VTSM (is nu het tweede POST commando geworden) opnieuw, klik met de rechter muisknop en kies voor de actie "Edit Command". Kies in het popup menu dat nu verschijnt via de selectielijst voor het commando: "(Jump_VTS_TT) Jump to Title in this titleset" en kies daarna "2" als Title nr.
Pas op: niet zelf de waarde typen, maar uit de selectielijst kiezen! Door deze instructie zal naar hoofdstuk 2 gesprongen worden, ons eerste "echte" hoofdstuk.
De PGC Command Table zal er nu als volgt uitzien:



Hiermee is het extra "Play All" hoofdstuk aangepast. We hebben ervoor gezorgd dat na het afspelen van de extra titel de waarde "1" in register 8 is geplaatst en dat we beginnen met het afspelen van het eerste echte hoofdstuk.
Het is overigens ook mogelijk om de implementatie zo te maken dat de extra titel niet getoond wordt. In dat geval moet je als PRE commando register 8 aanpassen en ook als PRE commando de (JumpVTS_TT) uitvoeren. Het POST command kan je verwijderen, evenals het CELL commando (je kan ze ook laten staan, ze worden in deze situatie nooit uitgevoerd).
De PGC Command Table is dan als volgt:



Bovenstaande is waar als je DVD is opgebouwd uit één menu, gevolgd door de hoofdstukken welke je naar keuze achter elkaar of apart wilt laten afspelen. Heb je voorafgaand aan het menu bijvoorbeeld een introductie filmpje dat eerst gespeeld wordt voordat het menu getoond wordt, dan bevat VTS_PCG_1 de gegevens over je introductie filmpje en moet je beginnen met VTS_PCG_2. Er veranderd verder niets, behalve dat natuurlijk nu hoofdstuk 3 het eerste echte hoofdstuk is waarheen gesprongen zal moeten worden.

Vervolgens moeten we alle volgende hoofdstukken (behalve het laatste) gaan aanpassen.
Selecteer de betreffende VTS_PCG_n in het bovenste venster. We voegen in de PCG Command Table nu twee POST commando's toe. In het eerste commando gaan we testen of register 8 een waarde ongelijk aan "0" bevat. Zo ja dan gaan we naar het derde POST commando waarin we aangeven naar het volgende hoofdstuk te willen.
We voegen eerst (net als eerder bij hoofdstuk 1) een NOP POST commando toe en veranderen de waarde 00 00 00 00 00 00 00 00 met behulp van de HexEditor nu naar: 00 D1 00 08 00 00 00 03. Dit wordt vertaald tot: "Als register 8 ongelijk is aan 0, spring dan naar de derde instructie".
We voegen vervolgens een derde POST commando toe. Doe dit door het tweede POST commando te selecteren, hierop met de rechter muisknop te klikken en dan te kiezen voor "Add PostCommand".
Verander de NOP door te handelen als bij hoofdstuk 1. Kies ook hier de opdracht: "(Jump_VTS_TT) Jump to Title in this titleset" maar kies als Title nr. het gewenste hoofdstuknummer. Dit zal vaak het volgende oplopende nummer zijn, maar is niet beslist noodzakelijk. Je kan de hoofdstukken in elke gewenste volgorde laten afspelen.
Deze acties geven dan de volgende PGC Command Table:



Herhaal bovenstaande voor alle volgende hoofdstukken, behalve voor het laatste.
Na het laatste hoofdstuk gaan we, voordat we terugspringen naar het menu, het register 8 weer op nul zetten . Insert een nieuw POST commando en wijzig de NOP met de HexEditor in 71 00 00 08 00 00 00 00.
Dit wordt dan de PGC Command Table van het laatste hoofdstuk:



Sla het IFO bestand nu op (Save) en laat IfoEdit ook het .BUP bestand aanpassen.
Je bent nu klaar om het resultaat te testen. Doe dit met een tool zoals PowerDVD.
Als de navigatie werkt zoals je verwacht kan je de DVD branden met behulp van Studio of elk ander gewenst DVD brand programma.

Bovenstaande informatie heb ik overigens niet zelf bedacht, maar is een zeer vrije bewerking van de Engelse tekst op de website: http://davetong.tripod.com/PlayAll/.
De optie om het "Play All" hoofdstuk niet af te spelen heb ik wel zelf toegevoegd.

Reacties graag in de newsgroup nl.hobby.video.

Versie 1.0
14 december 2004

Ton Brouwer