# Synchronized Multimedia Integration Language

Il Synchronized Multimedia Integration Language (SMIL) è un linguaggio di marcatura basato su XML (eXtensible Markup Language) utilizzato per descrivere la sincronizzazione di elementi multimediali come testo, audio, video e grafica in un documento web o in un'applicazione multimediale. SMIL è stato sviluppato dal World Wide Web Consortium (W3C) per semplificare la creazione di presentazioni multimediali interattive e sincronizzate.

## Caratteristiche

* Sincronizzazione: SMIL consente di definire relazioni temporali tra diversi elementi multimediali all'interno di una presentazione, consentendo una riproduzione sincronizzata di testo, audio, video e altro.
* Struttura basata su XML: SMIL utilizza tag e attributi per definire la struttura e le relazioni temporali tra gli elementi multimediali. Questo rende i documenti SMIL facilmente leggibili e modificabili da parte degli autori e delle applicazioni.
* Interattività: SMIL supporta anche l'aggiunta di elementi interattivi, come collegamenti ipertestuali, pulsanti e controlli utente, per consentire agli utenti di interagire con la presentazione.
* Multi-piattaforma: Le presentazioni SMIL possono essere riprodotte su una varietà di piattaforme, inclusi browser web e applicazioni multimediali.
* Utilizzo comune: SMIL è stato utilizzato per la creazione di contenuti multimediali interattivi su Internet, inclusi annunci pubblicitari, tutorial interattivi, presentazioni didattiche e altro.
* Abbandono progressivo: SMIL offre anche la possibilità di definire alternative per gli elementi multimediali, il che facilita l'abbandono progressivo in caso di non supporto da parte del dispositivo o del software dell'utente.
Tuttavia, va notato che negli ultimi anni, l'uso di SMIL è diminuito, e, alcune tecnologie alternative come HTML5 e CSS3 hanno assunto un ruolo più prominente nella creazione di presentazioni multimediali sincronizzate su web e dispositivi. HTML5, in particolare, offre supporto nativo per l'integrazione di audio e video nei documenti web, riducendo la necessità di utilizzare specificamente SMIL per tali scopi.

## Storia
### SMIL 1.0

SMIL 1.0 è diventato uno standard del W3C nel giugno 1999.

### SMIL 2.0

SMIL 2.0 è diventato uno standard del W3C nell'agosto 2001. Con questa specifica è stata introdotta una struttura di linguaggio modulare, facilitando di fatto l'integrazione della semantica SMIL in altri linguaggi basati su XML. I moduli di animazione e la tempistica di base sono stati inoltre integrati in SVG e i moduli SMIL sono stati una base per il Timed-Text. La struttura modulare ha permesso di definire il profilo di lingua standard SMIL e XHTML + SMIL come profilo di linguaggio con sintassi comune e semantica standard.

### SMIL 2.1

SMIL 2.1 è diventato uno standard del W3C nel dicembre del 2005. Include un piccolo numero di estensioni basate su esperienze pratiche raccolte con SMIL nel Multimedia Messaging System sui telefoni cellulari.

### SMIL 3.0

SMIL 3.0 è stato presentato come bozza dal W3C nel dicembre 2006, ed è diventato uno standard W3C nel dicembre 2008. L'ultimo progetto di revisione è stato distribuito il 6 ottobre 2008.

## Documenti SMIL

I documenti SMIL hanno una struttura simile a un documento HTML: sono in genere divisi in un <head> opzionale e un <body> obbligatorio. Il campo <head> contiene il layout e le informazioni dei metadati, mentre il <body> contiene le informazioni di temporizzazione ed è generalmente composto da una combinazione di tre principali tag: sequenziale ("<seq>", semplici playlist), parallelo ("<par>", multi-zone/multi-layer di riproduzione) ed esclusivo ("<excl>"). SMIL fa riferimento a oggetti multimediali utilizzando degli URL, permettendo la condivisione in presentazioni e la memorizzazione su più server per bilanciare il carico. Il linguaggio può anche associare diversi oggetti multimediali con differenti requisiti di banda.
Per la programmazione della riproduzione, SMIL supporta la specifica per data e ora "wallclock" di ISO-8601, utile per definire quando una playlist deve iniziare o finire in base a precisi eventi.

### Estensione file

I file SMIL hanno un'estensione .smi o .smil. Tuttavia, anche i file SAMI di Macintosh usano l'estensione .smi, cosa che può creare ambiguità. Di conseguenza, i file SMIL usano comunemente l'estensione .smil per evitare confusione e conflitti.

## Combinazione con altri standard basati su XML
### SMIL + SVG

SMIL è uno dei tre mezzi con cui è possibile creare animazioni SVG, oltre JavaScript e CSS.

### SMIL + RSS o altri metodi di syndication web

RSS e Atom sono metodi di syndication web: il primo è più popolare come metodo per la diffusione dei contenuti Podcast. SMIL è potenzialmente utile per creare script o playlist che legano sequenzialmente più contenuti multimediali e che possono poi essere sindacati tramite RSS o Atom. Inoltre, la combinazione di file multimediali .smil con RSS o Atom syndication sarebbe utile per l'accessibilità da parte dei non udenti ai podcast audio abilitando sottotitoli Timed Text. La combinazione può anche trasformare risorse multimediali in ipermediali che possono essere riferite da altri contenuti indirizzabili di tipo audio e video.

### SMIL + VoiceXML e SMIL + MusicXML

VoiceXML può essere combinato con SMIL per fornire una lettura sequenziale di diverse pagine pre-fornite o diapositive in un browser vocale, mentre combinando SMIL con MusicXML è possibile creare sequenze ricombinabili all'infinito di fogli musicali. Combinare SMIL + VoiceXML o SMIL + MusicXML con RSS o Atom potrebbe essere utile per la creazione di uno pseudo-podcast con incorporati collegamenti ipertestuali, mentre abbinare SMIL + SVG con VoiceXML e/o MusicXML sarebbe utile per la creazione di un supporto audio automatico, con grafica vettoriale di animazione con collegamenti ipertestuali incorporati.

### SMIL + TEI

SMIL è previsto per l'utilizzo all'interno di documenti TEI.

## Utilizzo

SMIL viene utilizzato su dispositivi palmari e smartphone ed ha anche contribuito allo sviluppo del Multimedia Messaging Service (MMS). È anche una delle tecnologie di base utilizzate dagli HD DVD per l'interattività avanzata.
Il campo della Digital Signage sta utilizzando SMIL come mezzo per controllare la pubblicità dinamica nelle aree pubbliche. Il sito internet del servizio di streaming video Hulu include anche l'utilizzo di SMIL tra le sue tecnologie.

### Software

Per visualizzare una presentazione SMIL è necessario avere installato un lettore SMIL sul proprio computer. Alcuni esempi di lettori SMIL:
* Adobe Media Player
* Amarok
* Helix Player
* QuickTime Player
* RealPlayer
* Totem
* Windows Media Player (Playlist Files)
* Zune Playlist Files
* VLC
SMIL è in grado di mostrare i file SMIL nativamente nel browser web, eliminando la necessità di un lettore SMIL separato o di plug-in. Attualmente, Microsoft Internet Explorer ha un supporto limitato per le caratteristiche di SMIL. Il progetto Mozilla open source incorpora le tecnologie relative a XML, SMIL e altri come SVG e MathML nel loro browser.

### Hardware

* IAdea XMP-300 Media Player
* SpinetiX HMP100 Hyper Media Player
* SpinetiX HMP130 Hyper Media Player
* SpinetiX HMP200 Hyper Media Player
* Thomson/Grass Valley MediaEdge-3 Players
* ViewSonic NMP-550 lettore multimediale
* ViewSonic EP1020r Wireless Display + lettore (che supporta un sottoinsieme di SMIL)
* Innes DMC200 lettore multimediale
* Innes DME204 lettore multimediale HD con encoder H264 incorporato
I media player basati su chip dedicati con decodifica 1080p, come il processore Sigma Designs 8634, incorporano nativamente un player SMIL.

### Incorporare i file SMIL in pagine webXHTML

Per poter essere visualizzato da un browser che non lo supporta, un file SMIL deve essere integrato in una pagina e aperto con un plug-in, come ad esempio con QuickTime per Apple o con Windows Media Player per Microsoft.