SMIL
Synchronized Multimedia
Integration Language
Ciro Autiero
1
Cosa è SMIL
SMIL (si pronuncia “smile”) è l’abbreviazione di
Synchronized Multimedia Integration Language è un
linguaggio per l’integrazione e la sincronizzazione di
diversi files multimediali.
Permette di creare documenti multimediali in cui:
– diversi oggetti distribuiti nel web sono sincronizzati
tra loro,
– l’utente può interagire con essi in modo coerente,
– il layout è definito in modo preciso,
– l’integrazione è realizzata attraverso un formato
testuale di markup, in particolare un linguaggio XML.
2
Cosa non è SMIL?
Non è un nuovo protocollo per la trasmissione di
media.
Non è uno strumento di authoring di media.
Non è un’alternativa a Flash anche se permette la
formulazione di animazioni.
3
SMIL vs HTML
HTML permette l’integrazione di diversi oggetti in
una pagina web.
Come HTML, SMIL non permette la creazione di
nessun tipo di media (ma diversamente da HTML,
anche i file di testo vengono creati esternamente).
Diversamente ad HTML, gestisce in modo completo
l’utilizzo di media continui:
– Sincronizzazione,
– Interazione…
4
SMIL - Cronologia
15 Giugno 1998
Vengono pubblicate le specifiche di SMIL 1.0 come
W3C recommendation
7 Agosto 2001
Le specifiche di SMIL 2.0 diventano una W3C
recommendation.
13 Dicembre 2005
Le specifiche di SMIL 2.1 diventano una W3C
recommendation
5
SMIL 1.0
disporre oggetti multimediali in punti precisi dello
schermo,
descrivere il comportamento temporale dei diversi
elementi di una presentazione multimediale,
interagire con link ad altre presentazioni o parti di
esse.
6
SMIL 2.0
Modularizzazione del linguaggio,
Profiling (Language Profile e Basic Profile),
inserire animazioni nella timeline della
presentazione,
inserire transizioni tra un oggetto e l’altro,
modificare la riproduzione “on-the-fly” sulla base di
alcuni eventi scatenati dall’utente
7
SMIL 2.1
Introduzione di feature per terminali mobili, in
particolare vengono aggiunti i profile: Mobile Profile
e Extended Mobile Profile,
rivisti ed aggiunti moduli sulla gestione temporale
dei file multimediali, sulla disposizione degli oggetti
(layout) nella presentazione e sulle transizioni.
8
SMIL è un linguaggio
modulare
SMIL 2.1 è diviso in 10 aree funzionali. Ogni area
funzionale è poi suddivisa in moduli:
1. Timing
2. Time Manipulations
3. Animation
4. Content Control
5. Layout
6. Linking
7. Media Objects
8. Metainformation
9. Structure
10.Transitions
9
Player e Browser
Player
Strumento per la riproduzione di media continui.
Browser
Ha come scopo principale la navigazione tra le
pagine.
Solitamente i player si integrano come “plugins” del
browser Web
10
Player per documenti SMIL
Apple QuickTime:
http://www.apple.com/quicktime/download/
Compaq HPAS:
http://research.compaq.com/SRC/HPAS
Oratrix Grins: http://www.oratrix.com
AMBULANT (1.6) Open Source SMIL Player:
http://www.cwi.nl/projects/Ambulant/distPlayer.ht
ml
RealSystem G2: http://www.real.com
......
11
Come funziona
1) Il browser incontra un file "SMIL"
2) Lo riceve…
3) ...il browser richiama l'applicazione esterna che
si preoccuperà di...
4) e 5) ...richiedere i vari file necessari per la
presentazione e visualizzarla.
12
SMIL Profiles
Un Profile è un insieme di moduli di SMIL che
consente di ottimizzare la presentazione in funzione
delle caratteristiche del Client.
I Profiles sono pertanto tentativo di far interagire
diversi player e browser:
– una presentazione deve poter essere eseguita da
più player (attualmente questo non è in generale
vero)
– su dispositivi diversi → PDAs, lettori MP3, …
Le specifiche SMIL 2.1 definiscono quattro Profile:
– Language Profile.
– Mobile Profile.
– Extented Mobile Profile.
– Basic Profile and Scalability Framework.
13
Ruolo di SMIL negli MMS
I messaggi MMS si basano sul linguaggio di
programmazione SMIL che viene utilizzato per
produrre presentazioni che includono contenuti
multimediali
Con l’obiettivo di mantenere al più alto livello
possibile l’interoperabilità del servizio alcuni
protagonisti del mondo delle telecomunicazioni (CMG
Wireless Data Solutions, Comverse, Logica, Motorola,
Nokia, Siemens e Sony Ericsson) hanno creato l’MMS
CONFORMANCE DOCUMENT, consolidato sotto l’OMA
(Open Mobile Alliance).
14
MMS Conformance Document
Obiettivo
Unificare il più possibile il linguaggio SMIL e
specificarne le caratteristiche da utilizzare anche
fra utenti e terminali differenti:
– Contenuto del messaggio multimediale.
– Elementi ed attributi del linguaggio di
presentazione.
– Formato dei contenuti multimediali.
– Abbassamento del livello di capacità.
15
Evoluzione dei formati SMIL
per Terminali Mobili
SMIL Basic
Essenzialmente basato sul Basic Profile
usato su PDA ma non per cellulari.
MMS SMIL
Il profilo è un insieme di moduli grazie ai
quali può essere costruita la
presentazione; per gli MMS, e di
conseguenza per i cellulari. Definito nel
Conformance.doc.
PSS SMIL
La versione di PSS SMIL (Packet
Switched Streaming Service) contiene i
moduli di SMIL Basic Profile con alcuni
inserimenti.
3GPP standard. Sostituirà MMS SMIL.
16
Come creare un documento
SMIL
Una presentazione SMIL è un semplice file di testo
tipicamente estensione .smi e può essere editato con
un semplice editor di testo, ad esempio WordPad.
Per creare una presentazione SMIL l'unica cosa che
serve (oltre ai documenti multimediali che si voglio
presentare) è un editor di testo.
Gli strumenti di authoring specifici offrono delle
interfacce grafiche che esplicitano meglio
l’andamento del tempo.
Alcuni esempi:
– GRiNS
– RealSlideshow
– LimSee2 (open source)
17
Struttura di un documento
SMIL
<smil>
<head>
<!-- informazioni sul contenuto -->
<layout>
<!-- definizione delle regioni -->
</layout>
</head>
<body>
<!-- sincronizzazione degli
elementi della presentazione-->
</body>
</smil>
18
SMIL come linguaggio XML
SMIL è un linguaggio di markup con una struttura
molto simile ad un documento HTML. SMIL estende
XML e ne rispetta la sintassi (HTML non rispetta la
sintassi XML).
Pertanto in un documento SMIL:
– i tag sono case sensitive,
– deve sempre esserci un tag di chiusura,
– i tag devono essere aperti e chiusi nell’ordine
corretto,
– gli attributi vanno riportati tra “virgolette”.
I browser HTML cercano di visualizzare al meglio
codice non corretto.
I player SMIL non eseguono codice non corretto.
19
Versione e regole del
Documento
Come ogni documento XML anche i documenti SMIL
iniziano con una dichiarazione che ne definisce la
versione:
<?xml version="1.0"?>
Un secondo elemento opzionale e che è spesso
presente nei documenti XML e pertanto anche nei
documenti SMIL è un riferimento alle regole secondo
cui il documento deve essere interpretato:
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.1//EN"
"http://www.w3.org/2005/SMIL21/SMIL21.dtd">
20
Un primo esempio di
documento SMIL
<?xml version="1.0"?>
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.1//EN“
"http://www.w3.org/2005/SMIL21/SMIL21.dtd">
<smil
xmlns="http://www.w3.org/2005/SMIL21/Languag
e">
<head>
<meta name="title“ content=“SMIL
Introduction"/>
<meta name="author" content=“Autiero Ciro"/>
<layout>
</layout>
</head>
<body>
<video src=“partita.mpg"/>
</body>
21
</smil>
La sezione Head
Contiene informazioni relative al contenuto della
presentazione (tag meta)
la disposizione spaziale (layout) dei media:
– la definizione delle finestre,
– la definizione delle regioni della presentazione in
cui sono visualizzati i media
la definizione delle transizioni utilizzate nella
presentazione.
22
La sezione Head: codice
<head>
<meta name="title" content="…" />
<meta name="author" content="…" />
<meta name="abstract" content="..." />
<layout>
<root-layout width="500" height="400“
backgroundColor="white" />
<region id="region" …/>
….
</layout>
<transition id="upSlide" type="slideWipe"
subtype="fromBottom" />
</head>
23
Layout
Il tag layout definisce la disposizione spaziale della
presentazione: è possibile definirvi:
– finestre,
– regioni,
– punti di ancoraggio.
La finestra principale è definita come <root-layout>.
Le altre finestre sono definite come <topLayout>.
24
Posizionamento delle regioni
Origine
Top
Left
Heigth
Width
Le regioni sono porzioni dello schermo entro cui
inserire i media della presentazione. Vanno definite
all’interno di una finestra o di un’altra regione.
→ posizionamento
→ volume
Si considera come origine l’angolo superiore sinistro
della finestra principale, e si calcola la distanza in
numero di pixel.
25
Un esempio di definizione
di regione
<smil
xmlns="http://www.w3.org/2005/SMIL21/Langua
ge">
<head>
<layout>
<root-layout width= “500” height=“400”
background-color=“white”/>
<region id= “icona” left=“25” top=“50”
width=“450” height= “313” />
</layout>
</head>
<body>
<seq dur="10s">
<img src=“chat.jpg” alt=“Immagine”
region=“icona” />
</seq>
</body>
26
</smil>
Attributi per il layout
region Id
Tag per denire un’area di applicazione in cui
inserire contenuti multimediali con il relativo
nome assegnato
backgroundColor
colore di sfondo di questa zona espressa in valori
esadecimale
bottom, left, right, top
distanze espresse in pixel dall’origine
height, width
Altezza e larghezza espressa in pixel
fit
"disegna" il file multimediale in corrispondenza
all' altezza e alla lunghezza definita negli attributi
precedenti
27
La sezione Body
Contiene la descrizione dei contenuti della
presentazione (path, regione occupata…),
le descrizione del comportamento temporale della
presentazione multimediale,
le modalità di interazione con l’utente,
le animazioni definite nella presentazione.
28
La sezione Body: codice
<body>
<seq>
<par dur="00:12.0" >
<img src="pour.gif"
transIn="rightSlide“ region="rp"
fill="hold" />
<audio src="audio/guitar.rm"
dur="10s"/>
</par>
<par>
<img src="heating.gif"
transIn="rightSlide"
region="vid" />
<audio src="audio/piano.rm"
begin="2s"/>
</par>
</seq>
</body>
29
Riproduzione parallela
Il tag <par> permette la riproduzione parallela di
più oggetti.
Tramite degli attributi è possibile cambiare l’inizio
e la fine della riproduzione dei media.
<par> <!-- questi 2 file vengono eseguiti in
parallelo -->
<audio src=“colonna_sonora” />
<audio src=“commento_parlato” />
</par>
<par> <!-- questi due file si si sovrappongono per
5 secondi -->
<audio src=“colonna_sonora” dur=“15s” />
<audio src=“commento_parlato”
begin=“10s”/>
</par>
30
Riproduzione in sequenza
Il tag <seq> permette la riproduzione sequenziale di
più oggetti.
La sincronizzazione si realizza annidando i tag <seq>
e <par>.
<seq> <!-- questi 2 file vengono eseguiti in
sequenza -->
<audio src=“primo_comento” />
<audio src=“secondo_commento” />
</seq>
31
Attributi di par e seq
begin
specifica l'esatto inizio temporale di un elemento
dur
determina la durata temporale dell’elemento
repeat
indica il numero di volte per cui l’elemento deve
essere riprodotto
end
specifica l'esatta fine temporale di un elemento
<body>
<seq>
<img src=“chat.jpg"
begin="4s"
end="10s"
dur="15s" region="icona" />
</seq>
</body>
32
Eventi
È possibile sincronizzare due o più oggetti sulla base
del verificarsi di un evento: per fare un riferimento
ad un evento particolare lo costruisco indicando:
– l’id dell’oggetto che lo ha subito + “.” + l’evento
stesso.
Si possono combinare gli eventi:
<par end=“bottone.click; commento_parlato.end”>
<audio src=“colonna_sonora.wav”
id=“musica”/>
<audio src=“commento_parlato.wav”
id=“commento”/>
<img src=“stop.jpg” id=“bottone”/>
</par>
33
Le transizioni
Le transizioni sono filtri o effetti che rendono meno
netto il passaggio da un media ad un altro.
Un media può avere una transizione di entrata e una
transizione di uscita.
Le transizioni non modificano la durata degli oggetti.
Per creare un effetto devo conoscere tre dati:
– il media iniziale (sorgente o background),
– il media finale (destinazione),
– la progressione della transizione (tipo, durata…).
34
Definizione delle transizioni
Sono definite in due modi: con il tag <transition>
nella sezione head e utilizzate nella definizione dei
media. In questo modo possono essere riutilizzate.
<head>
<transition id=“trans_1" dur="1s"
type="fade" />
</head>
...
<body>
<par dur="5s" >
<img id=“img_1" transIn=“trans_1"
…/>
<img id=“img_2"
transOut=“trans_1" …/>
</par>
</body>
35
Tipo di transizione
L’effetto risultante dalla transizione è ottenuto
combinando i valori di due attributi:
– type indica un insieme di transizioni,
– subtype indica un effetto particolare e può essere
omesso.
La durata di una transizione è definita dall’attributo
dur=“Ns”.
http://www.w3.org/TR/smil20/smiltransitions.html
36
Le animazioni
In SMIL è possibile creare delle animazioni che:
– muovono un oggetto,
– ne modificano le dimensioni,
– cambiano un colore o
– cambiano il valore di un parametro in modo
dinamico,
attraverso i tag:
– animate,
– animateMotion,
– animateColor,
– set.
37
Hyperlink
SMIL supporta link unidirezionali molto simili a quelli
offerti dal linguaggio HTML.
Di un link si definisce:
– la sorgente,
– la destinazione,
– il comportamento della sorgente e della
destinazione del link.
<par id=“text_and_video” >
<video src=“file_video” region=“video” />
<text src=“file_testo” region=“testo” />
</par>
<a href=“presentazione.smil#text_and_video”
show=“pause”>
<video src=”altro_file_video"
region=“altra_regione”/>
38
</a>
Definizione degli hyperlink
<a> contiene la sorgente del link e definisce la
destinazione nell’attributo href
<area> descrive la sorgente di un link come una
porzione di un media di forma shape e delimitata
dalle coordinate coord.
show, sourcePlaystate e sourceLevel definiscono lo
stato della sorgente.
destinationPlaystate e destinationLevel definiscono
lo stato della destinazione.
39
Come inserire un
puntatore ad un file SMIL
Una presentazione in cui il codice SMIL è integrato in
un file HTML, si collega creando un normale link ad
una pagina HTML.
Un file SMIL può essere messo a disposizione su un
web server. Il Client accede al file tramite il browser:
http://webserver.com/path/file.smi
La presenza del Player sul Client consente la visione
della presentazione SMIL.
40
Uno schema per
introdurre SMIL in HTML
<html xmlns:t ="urn:schemas-microsoft-com:time" >
<?import namespace="t"
implementation="#default#time2">
<head>
<title>…</title>
<style>
.time {behavior: url(#default#time2);}
p { font-family:arial; color:black; fontsize:10pt }
div { font-family:arial black; font-size:18pt;
color:black }
</style>
</head>
<body>
…
</body>
</html>
41
SMIL per l’E-learning
Regione slide
Anteprima slide
Regione documenti
Regione video
42
Perché usare SMIL?
Perché è supportato da organi di standardizzazione e
dal mondo “industriale” (Wide Web Consortium
(W3C), RealNetworks, IBM, Intel, Macromedia,
Microsoft, Netscape/AOL, Nokia, Ericsson, Canon,
Panasonic, Philips, ...)
Perché è un formato aperto e gratuito.
Perché è possibile scrivere presentazioni
multimediali in SMIL utilizzando un semplice editor di
testo.
Perché è semplice.
Perché la sua impostazione modulare consente di
utilizzarlo senza conoscerne tutti i dettagli
....
43
Riferimenti
Specifiche SMIL:
– http://www.w3.org/AudioVideo/
SMIL Tutorial:
–
http://www.smilguide.com/guide/tutorial/learningto-smil
– http://www.html.it/smil/
– http://www.w3schools.com/smil/default.asp
Altre fonti:
– http://www.xsmiles.org/
– http://smw.internet.com/smil/smilhome.html
– http://www.oratrix.com
44
Scarica

SMIL - ScuolaSI