Mettiamo tutto assieme

Prepariamo un file di configurazione per dvdauthor.


E' giunto il momento di riprendere in mano DvdAuthor per assemblare un DVD più complesso comprendente oltre al film principale:

  • un logo iniziale
  • l'accesso diretto alle scene
  • il trailer
  • una scena eliminata

Organizzeremo il materiale in questo modo:

  • nel VMGM troveranno posto il logo iniziale e il menu principale
  • nel primo titleset ci saranno il film, i menu per l'accesso alle scene ed il menu che appare quando premiamo il tasto menu sul telecomando durante la visione del film
  • in un secondo titleset ci staranno il trailer, la scena eliminata e il menu dei contenuti extra

Il risultato finale sarà quello che potete vedere nel Listato 6 (Nuova pagina) e che ci apprestiamo ad analizzare.


<dvdauthor dest="d:\bp\DVDfs">

Iniziamo con lo specificare la directory in cui salvare il risultato del lavoro. Bisogna accertarsi che la cartella sia vuota altrimenti DvdAuthor appende i file a quelli esistenti ed il tutto risulterà inutilizzabile. Tra i sorgenti di DvdAuthor c'è anche una utility per fare questo tipo di pulizia che però non è presente nella distribuzione binaria per windows; poco male, basta fare un del /s e si cancella tutto.

Dopo vari tag arriviamo al program chain (pgc) del primo menu del VMGM e qui incontriamo questo codice:


<pre>if (g2 == 1) jump menu 2;</pre>

Il codice contenuto all'interno del tag pre viene eseguito prima che sia mostrato il filmato, anzi potrebbe succedere che il filmato non venga neppure mostrato e addirittura potrebbe non esserci. Nel caso specifico il filmato viene saltato se il registro g2 vale 1 ed in tal caso si passa direttamente al secondo menu.

Quando il disco viene inserito tutti i registri generici sono azzerati, quindi il test risulta falso e viene fatto partire il seguente filmato:


<vob file="d:\bp\menu\logohv.mpg" pause="7" />

Il logo è stato ottenuto con i metodi già visti e dura 2 secondi; poi sull'ultimo fotogramma il player va in pausa per 7 secondi e quindi il logo viene mostrato per un totale di 9 secondi.

Notiamo che si tratta di un filmato normale senza le maschere dei menu: il fatto di trovarci all'interno di un tag menu non ci obbliga ad utilizzare dei filmati con le strutture dei menu. E' invece obbligatorio inserire i menu all'interno dell'omonimo tag se si vuole che funzionino.

Al termine della pausa viene eseguito il codice all'interno del tag post.


<post>g2=1; jump menu 2;</post>

Per prima cosa viene inserito il valore 1 nel registro g2, poi si salta al secondo menu. Finchè non estrarremo il disco dal lettore non passeremo mai più da qui e non vedremo più il logo perchè sarà eseguito il salto contenuto nel tag pre.

Il menu principale.
Figura 5-2
Il menu principale.

Vorrei sottolineare anche l'importanza di uscire sempre da un post con un salto: se ci dimentichiamo di farlo non avremo alcun modo di far avanzare la riproduzione del disco.

Il secondo pgc contiene il menu principale del disco ( Figura 5-2 ), questo è un vero menu con 3 bottoni definiti con le maschere di spumux.

In questo caso non abbiamo né pre né post (anche se potremmo averli), ma abbiamo i tag legati ai pulsanti del menu. Dobbiamo definire un tag button per ogni pulsante: DvdAuthor si lamenta se il numero dei tag non corrisponde esattamente al numero dei pulsanti definiti in spumux.


<button>g1=1; jump titleset 1 menu;</button>

Questo è il codice che è collegato all'azione "inizio film"; viene settato il registro g1 e il controllo è passato al menu "root" del primo titleset.

Il codice per la "selezione scene" è differente solo per il valore assegnato a g1.

Infine il comando per i "contenuti speciali"


<button>jump titleset 2 menu;</button>

che è ancora più semplice perchè contiene solo il salto al menu del secondo titleset.

Infine dichiariamo qual è il filmato da mostrare


<vob file="d:\bp\menu\main_1_menu.mpg" pause="inf" />

a differenza del caso precedente facciamo una pausa infinita al termine dei 2 secondi di filmato: il disco riprenderà la riproduzione solo quando sceglieremo qualcosa con il telecomando.

Abbiamo completato la definizione del VMGM, adesso possiamo concentrarci sul primo titleset dove abbiamo la definizione di altri 3 menu.

I primi due sono quelli che realizzano l'accesso diretto alle scene e lo fanno con questo codice:


<button>jump title 1 chapter 1;</button>
<button>jump title 1 chapter 2;</button>
…

Anche se in questo titleset abbiamo un solo titolo dobbiamo comunque specificare di quale titolo sono i capitoli.

Diamo anche uno sguardo al codice che ci permette di tornare al menu principale:


<button>jump vmgm menu;</button>

Il controllo viene passato al primo menu del VMGM, quello con il logo; li sarà eseguito il codice dentro il tag pre. Poichè la condizione del test è verificata non verrà mostrato nulla e il controllo passerà al secondo menu del VMGM ovvero il nostro menu principale.

Il terzo menu di questo titleset inizia con questa dichiarazione:


<pgc entry="root">

L'attributo entry specifica quale sia la funzione del menu che stiamo definendo; in questo caso si tratta del menu che appare quando premiamo l'omonimo tasto sul telecomando.

Ci sono altre opzioni oltre a root che dovrebbero servire ad attivare funzioni avanzate come la selezione dei capitoli o le lingue, nonché essere dei target per i salti; come ho già detto non sono mai riuscito ad utilizzarle e quindi non mi dilungherò. Se qualcuno sa come utilizzarle me lo faccia sapere.

A questo menu possiamo arrivare dal menu principale, ma anche premendo il tasto menu del telecomando durante la visione del film: di questo dobbiamo tenere conto nel codice che precede la visualizzazione.


<pre>if (g1 == 2) {g1=0; jump menu 1;} else
     if (g1 == 1) {g1=0; jump title 1;}</pre>

Il menu play.
Figura 8-1
Il menu play.

Abbiamo visto nel menu principale del nostro disco che usiamo questo menu sia per l'avvio del film (settando g1 a 1) che per la selezione delle scene (settando g1 a 2): in entrambi i casi non viene mostrato nulla e si passa direttamente alla funzione richiesta, ma prima di fare il salto dobbiamo azzerare g1.

Così facendo quando arriveremo a qui agendo sul tasto menu del telecomando le condizioni per i salti non saranno vere e apparirà il menu visibile in Figura 8-1

I primi due tag button dovrebbero essere noti, mentre il terzo ci presenta un nuovo target


<button>resume;</button>

Il comando resume fa riprendere il film dal punto in cui era stato interrotto dal tasto menu del telecomando.

Terminata la definizione dei menu inizia quella dei titoli, in questo caso uno soltanto.

Inseriremo quindi l'elenco dei file mpeg specificando anche l'inizio dei vari capitoli


<vob file="d:\bp\dvd\sigla.mpg" />
<vob file="d:\bp\dvd\part1.mpg" chapters="0,2:57,5:10,7:03,8:41" />
…

al termine troviamo un tag post (se ce ne fosse la necessità potremmo avere anche un pre) che ci rimanda al menu principale.


<post>call vmgm menu;</post>

Il menu dei contenuti speciali.
Figura 8-2
Il menu dei contenuti speciali.

Notiamo che al posto del consueto jump c'è un call: la documentazione non è chiara su quale sia la differenza fra i due comandi. Per quello che ho visto io il call si può usare solo nel post dei titoli dove peraltro il jump non è accettato.

Non entro nel dettaglio del secondo titleset perchè si dovrebbe intuire abbastanza facilmente il significato delle varie dichiarazioni. In Figura 8-2 è visibile il menu dei contenuti speciali a cui è dedicato questo titleset.

Inizio pagina
 
Precedente
Sommario
Successivo