Negli articoli precedenti dedicati alle nuove funzionalità di gestione dei filmati video per il Web attraverso Macromedia Flash Mx2004 e Flash8 abbiamo più volte accennato alla possibilità di utilizzare dei sistemi di sincronizzazione tra le azioni e gli eventi dei filmati Flash e i video trasformati in formato FLV.
Dopo aver trasformato in FLV i nostri video, dopo aver utilizzato dei semplici script per gestirne la visualizzazione e la riproduzione attraverso un qualsiasi browser con Flash Player, dopo aver realizzato interfacce grafiche completamente personalizzate, ora non resta che esplorare i sistemi di comunicazione interattiva che permettono al video FLV di lanciare azioni o avviare eventi quando la riproduzione raggiunge determinati punti chiave (cuepoint).
I metatag dei file FLV
Quando in un Flash si inseriscono dei filmati FLV esterni, è possibile attribuire a questi filmati delle informazioni supplementare, i metatag, che ne definiscono alcune proprietà. Per chi utilizza ancora Flash MX2004 ed eventuali altri programmi di ricodifica dei formati video in FLV, i metatag si limitano a indicare al componente (MediaPlayback o MediaDisplay+MediaController) alcune informazioni di base come, per esempio, la lunghezza del filmato visualizzata attraverso la barra di scorrimento. In questi casi sono gli stessi software di codifica che inseriscono automaticamente le informazioni che non è, quindi, possibile manipolare. Con l'avvento di Flash8, si è esasperato notevolmente il concetto di metatag permettendo ai filmati FLV di contenere non solo informazioni di base, ma anche attributi supplementari che possono essere "letti" e interpretati dai nuovi componenti o tramite actionscript. In termini pratici, questi metatag consentono, per esempio, di inserire informazioni in un file FLV che "etichettano" un determinato cuepoint non solo identificandone il nome e il punto all'interno del video, ma anche assegnandovi una o più variabili, successivamente utilizzabili nel filmato filmato Flash.
Per chiarire il grande valore apportato da questo miglioramento, pensiamo a una delle applicazioni più immediate di sincronizzazione: l'utilizzo di sottotitoli che scorrono durante la riproduzione di una videoclip.
In questo caso, è necessario fare in modo che quando il video raggiunge un certo fotogramma (o meglio cuepoint), l'animazione Flash visualizzi un testo che cambia a ogni cuepoint. Anche se esistono svariati modi per portare a termine questa operazione, il metodo più semplice e preciso è quello che consiste nel creare un filmato Flash che visualizza il valore di una variabile letta direttamente nel file FLV in riproduzione.
Sottotitoli con Macromedia Flash MX 2004
Prima di esplorare la funzionalità di lettura delle variabili esterne, facciamo un passo indietro. Con la ormai "vecchia" versione di Flash, il modo più pratico per sincronizzare eventi dell'animazione Flash e i video FLV esterni consiste nell'utilizzare una funzionalità poco nota del componente MediaPlayback. Una volta trascinato sullo stage un'istanza del componente, si dovrà, attraverso il pannello di controllo di ispezione dei componenti, inserire i vari cuepoint attribuendo dei nomi a ciascuno di essi, nomi che saranno successivamente utilizzati come chiavi per raggiungere, all'interno di una nuova linea temporale, i fotogrammi omonimi.
Una volta definiti tutti i cuepoint, nel pannello delle proprietà assegniamo un nome all'istanza del MediaPlayback. Ora creiamo un nuovo movie clip inserendo tanti fotogrammi chiave quanti sono i cuepoint assegnati al filmato FLV esterno, e diamo ai fotogrammi chiave gli stessi nomi dei cuepoint. In ogni fotogramma, copiamo il testo che vogliamo visualizzare non appena la testina di riproduzione raggiunge il cuepoint corrispondente.
Quanto fatto fino ad ora non è sufficiente perché avvenga la sincronizzazione tra cuepoint e fotogrammi del filmato. Dobbiamo ancora utilizzare un actionscript che associ il filmato esterno e i suoi cuepoint ai fotogrammi chiave del movie clip appena creato. Diamo un nome al movie clip dal pannello delle proprietà. Selezioniamo il MediaPlaybak sulla scena e apriamo il pannello dei comportamenti. Scegliamo la voce "media" e, di seguito, selezioniamo l'opzione di navigazione tra fotogrammi con etichette. Ora il sistema ci chiederà di scegliere il movie clip da sincronizzare con il file FLV esterno letto dal componente MediaPlayback. In questo modo la sincronizzazione diverrà operativa.
Sottotitoli con Flash8
L'utilizzo del sistema visto per Flash MX2004 è valido anche per la versione 8, che conserva anche tutte le funzionalità precedenti. Tuttavia il sistema è poco pratico poiché assegna i cuepoint tramite actionscript (metodo sicuramente poco preciso) e solo all'interno di uno specifico filmato Flash. Inoltre, i nuovi componenti personalizzabili FLVPlayback non presentano nel pannello di ispezioni
dei componenti le stesse funzionalità.
Per sfruttare al meglio Flash8, il processo di sincronizzazione dei sottotitoli è quindi totalmente diverso. In ordine occorre infatti:
-
al momento della codifica del filmato FLV tramite il sistema di importazione di Flash8, inserire i metatag relativi ai vari cuepoint (nome del cuepoint + testo dei sottotitoli)
-
inserire nell'animazione un'istanza del componente FLVPlayback che visualizzi il video codificato e contrassegnato da metatag
-
all'interno del filmato video, creare delle caselle di testo dinamiche
che visualizzino delle variabili -
aggiungere nella timeline uno script che attraverso un listenerObject e le proprietà info.parameters di lettura dei cuepoint esterni, riesce ad assegnare a una variabile interna all'animazione valori presenti nei metatag dell'FLV (vedi esempio seguente).
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject:Object):Void {
nomevariabiletesto = eventObject.info.parameters.nomecuepoint;
};
nomeistanzaFLVPlayer.addEventListener("cuePoint", listenerObject);
Come si può intuire, con Flash8 e la gestione esterna dei metatag si ottengono numerosi vantaggi tra cui la possibilità di realizzare video FLV editando solo una volta i metatag e potendoli così utilizzare indipendentemente dal tipo di riproduttore Flash che vogliamo utilizzare.
Funzionalità avanzate di Captionate 2.0
Per quanto riguarda la possibilità di aggiungere sottotitoli o gestire i metatag dei file FLV in maniera più dinamica di quella offerta da Flash8, il punto di riferimento è il già citato software Captionate 2.0 (www.buraks.com/captionate). Le principali funzionalità aggiuntive di Captionate permettono di gestire i sottotitoli attraverso un'interfaccia e actionscript dedicati. Captionate mette infatti a disposizione un'interfaccia per sincronizzare al video i sottotitoli (captions) avvalendosi anche di dialoghi multiutente o multilingua e di una serie di funzionalità dedicate. L'integrazione dei metatag generati da Captionate dentro un'animazione Flash è semplicissima, dato che basta incollare gli script presenti nei file di Help per ottenere le sincronizzazioni più precise. Un ulteriore vantaggio offerto da Captionate, vantaggio così importante da renderlo praticamente indispensabile per chi utilizza file FLV sincronizzati agli elementi dell'animazione Flash, è la possibilità di modificare i metatag di file FLV già codificati. Al contrario di quanto accade con Flash8 che prevede l'assegnazione di metatag integrati al file FLV solo al momento della ricodifica dell'intero filmato, Captionate consente la modifica, l'aggiunta, la correzione, l'esportazione/importazione e l'eliminazione degli stessi in qualsiasi momento permettendoci di risparmiare ore e ore di lavoro.
Daniele Cerra è giornalista pubblicista, Content Manager, Progettista e-learning e Web e Concept Designer. Il suo sito personale è http://www.danielecerra.it