Tomi Kujanpää (Tol-98)
SMIL -ohjauskieli

Oulun yliopiston tietojenkäsittelytieteiden laitos
Internet ja tietoverkot-opintojakson harjoitustyö
24.2.2000


Alkutiivistelmä

Tämän esseen on kirjoittanut Tomi Kujanpää, Internet ja Tietoverkot opintojakson harjoituksena keväällä 2000.SMIL-ohjauskieli-työ käsittelee SMIL ohjauskielen taustoja, toimintaa, työkaluja sekä tulevaisuutta.

Sisällys

Alkutiivistelmä
Johdanto
1. Mikä SMIL on?
2. Taustaa
3. Toiminta
   3.1. SMIL -dokumenttien rakenne
   3.2 SMIL -dokumenttien toiminta
4. SMIL työkalut
   4.1. SMIL -dokumenttien katselu
   4.2 SMIL -dokumenttien muokkaus
5. Tulevaisuus
Lähteet

Johdanto

SMIL-ohjauskieli ei ole vielä saavuttanut suurta tunnettavuutta osittain syystä, että se on vielä kehityvaihessa. SMIL 1.0 Specification on jo julkaistu ja seuraavaksi ollaan julkaisemassa SMIL "Boston" versiota. Tämän harjoitustyön tarkoituksena on kuvata mitä SMIL on, kuinka se rakentuu, mitkä ovat sen ominaisuudet, mikä on sen tausta ja mitkä ovat sen tulevaisuuden näkymät.


1 Mikä SMIL on ?

SMIL (Synchronized Multimedia Integration Language) on multimedian esitystä varten kehitetty HTML:n (Hypertext Markup Language) kaltainen ohjauskieli. SMIL:n avulla voidaan helposti määritellä ja synkronisoida multimediaelementtejä (video, ääni, still kuvat, teksti) esitettäväksi Webissä. Nykyäänkin voidaan Internetissä esittää multimediaa, mutta jokainen elmentti on erillinen eikä sitä voida koordinoida toisten elementtien kanssa ilman ohjelmointia esimerkiksi Javalla. Näin SMIL tuo uuden ulottuvuuden WWW-sivujen esitykseen.

SMIL toimii samoilla periaatteilla kuin esimerkiksi Flashilla tai Directorilla tehdyt dokumentit. Kaikki tapahtuu siis aikajanaa seuraten. Jokaisella tapahtumalla (mediaelementillä) on omat määritetyt aika-arvot, joiden aikana niitä esitetään. Määritetyn ajan loputtua tapahtuman esitys keskeytyy ja siirrytään seuraavaan elementtiin. Esitykset eivät kuitenkaan rajoitu ainoastaan yhteen elementtiin kerralla, vaan esillä voi olla rajaton määrä elementtejä yhtä aikaa esitettävänä. Työkaluna SMIL ei ehkä vedä vertoja edellä mainituille ohjelmille (Flash,Director), mutta on huomattavasti yksinkertaisempi, eikä vaadi niin paljon laitteistolta. Kuitenkin SMIL:n avulla voidaan teoriassa tehdä samat asiat kuin Flash:n. Flash tosin tukee paremmin ei-lineaarisia menetelmiä, kun taas SMIL:n avulla ei-lineaaristen dokumenttien tekeminen on erittäin vaikeaa ellei jopa lähes mahdotonta.

SMIL dokumenttien sisällön ei tarvitse sijaita samassa fyysisessä paikassa, vaan jokaisen mediaelementin olinpaikka määritetään, kuten HTML:ssä URL:n (Uniform Resource Locator) avulla. SMIL tukee myös usean mediaelementtiversion käyttämistä. Eli elementit voidaan tallentaa eri kaistanleveyksillä, jolloin käyttäjät jotka tarvitsevat pienempää kaistanleveyttä saavat elementin haluamassaan muodossa. Tämä ominaisuus on omiaan Internetiin, jossa käyttäjien laitteistojen ominaisuudet ja nopeudet vaihtelevat suuresti.

http://www.wdvl.com/Authoring/Languages/XML/SMIL/Intro/


2 Tausta

SMIL kehitettiin ratkaisemaan ongelmia erilaisten mediadokumenttien koordinoinnissa Web-sivuilla. Käyttöön otettiin aikajana jolle sivun mediaelementit koordinoidaan ja synkronisoidaan. SMIL pohjautuu XML-kuvauskieleen (eXtensible Markup Language).

SMILeä on kehitetty World Wide Web Consortiumin (W3C) toimesta ja mukana on ollut edustajia CD-ROM, interaktiivisen television, Web sekä audio ja video streaming teollisuuden parista. Ensimmäinen julkinen luonnos SMILestä julkaistiin marraskuussa 1997.

W3C, Macromedia Inc. ja Microsoft esittelivät vuonna 1998 spesifikaation, jota kutsuttiin nimellä HTML+TIME. Spesifikaatio perustui SMIL 1.0 spesifikaation, mutta siihen oli lisätty hieman ominaisuuksia tukemaan paremmin Web-selaimen tyyliä

http://hagen.lel.rug.nl/hypertext/smil.html


3 Toiminta

3.1 SMIL-dokumenttien rakenne

SMIL on hyvin samankaltainen HTML:n kanssa, eikä dokumenttien tekemiseen tarvita muuta kuin tekstieditori. Suurimmat erot verrattuna HTML:ään ovat:


(Kuvat.smil)
<smil>
<head>
<layout>
<root-layout width="300" height="300" background-color="white" />
<region id="eka_kuva" left="10" top="20" width="20" height="20" />
<region id="toka_kuva" left="100" top="20" width="90" height="130" />
<region id="kol_kuva" left="150" top="30" width="10" height="10" />
</layout>
</head>
<body>
<seq>
<img src="kuva1.gif" alt="Testi kuva" region="eka_kuva" dur="10s" />
<img src="kuva2.gif" alt="Toinen testi kuva" region="toka_kuva" dur="8s" begin="5s" />
<img src="kuva3.gif" alt="Toinen testi kuva" region="kol_kuva" dur="10s" begin="8s" />
</seq>
</body>
</smil>

Kuten yllä olevasta voi huomata, että SMIL-dokumentti on rakenteeltaan suuresti HTML-dokumentin kaltainen. Voitaisiinkin sanoa, että SMIL on HTML + aika. <smil> tagi aloittaa SMIL-dokumentin ja </smil> tagi on lopettaa sen. Päärakenne SMIL-dokumetissa on kuten HTML-dokumentissa. <smil>
<head>
. . .
</head>
<body>
. . .
</body>
</smil>
<head> osiossa määritellään koko dokumentin layout sekä kaikkien dokumenttiin tulevien elementtien paikat. <body> osiossa taasen määritellään missä, miten ja kuinka kauan kukin elementti tulee näkymään koko dokumentille varatulla alueella.


3.2 SMIL -dokumenttien toiminta

Yllä olevassa esimerkissä "Kuvat.smil" luodaan kolme eri aluetta joihin sitten tuodaan kuvia tietyksi ajaksi. Kuva "kuva1" tuodaan alueeseen "eka_kuva" ja sitä näytetään kymmenen sekuntia. Kuva "kuva2" tuodaan alueeseen "toka_kuva" aloittaen sen näyttö viisi sekuntia ensimmäisen kuvan katoamisesta ja näyttäen sitä kahdeksan sekuntia ja niin edelleen.

SMIL:ssä on runsaasti tageja, joiden tarkoituksena on esittää, koordinoida sekä synkronoida mediaelementtien tomintaa.

<layout> tagin avulla määritellään SMIL-dokumentin koko ja siinä olevien alueiden koko.
<root-layout> tagi määrittelee koko SMIL-dokumentti-ikkunan koon ulkonäön (esimerkiksi taustaväri).
<region> tagin avulla määritetään alue, jolla voidaan jotakin mediaelementtiä esittää. Dokumentin paikka määritellään top, bottom, right ja left määreiden avulla. Mitä suurempi määritetty luku on sitä kauempana määritetty alue on dokumentti-ikkunan reunasta.

<par> -tagia käytetään samassa tarkoituksessa, kuin esimerkin <seq> tagia, eli elementtien esityksen synkronointiin. Käytettäessä <par> tagia elementtien näkyminen on yhtäaikaista ja käytettäessä <seq> tagia peräkkäistä, kuten edellä olleessa esimerkissä.

<switch> -tagia käytetään esimerkiksi kun halutaan näytettäväksi eri elementtejä riippuen käyttäjän asetuksista. Voidaan esimerkiksi katsoa mitä kieltä käyttäjän järjestelmä käyttää ja valita tämän mukaan käyttäjälle sopiva kieli.

<animation>, <audio>, <image>, <text> ja niin edelleen tagien tarkoituksena on määrittää elementtien sijaintia ja attribuutteja. Esimerkissä käytin <img> tagia, jolla määritin, että elementin tyyppi on kuva ja tämän jälkeen annettiin sille sijainti ja parametreina missä, mistä alkaen ja kuinka kauan sen tulee näkyä.

Hyperlinkki tagina toimii <a> aivan kuten HTML:ssäkin ja tämän attributtina href ja show, joka esimerkiksi avaa uuden url :n samalla kun esitys jatkuu esim. RealPlayerissä. SMIL tukee myös muita formaatteja kuin itseään eli SMIL-dokumenttiin voidaan upottaa esimerkiksi HTML-dokumentti. Yhdessä SMIL-esityksessä voi olla myös linkki toiseen SMIL esitykseen tai sen osaan, jota siirrytään katsomaan alkuperäisen esityksen keskeytyessä (tai myös jatkuessa).

<anchor> tagi juontaa juurensa HTML:n image mappien ideasta. Image mapissa käytettiin osaa kokonaisesta mediaelementistä hyödyksi. <anchor> tagin avulla saadaankin määriteltyä näkyviin osa jostakin mediaelementistä ja sen kestoa voidaan muokata attribuuttien avulla. Alla olevassa esimerkissä videon kesto on jaettu kahteen ali-intervalliin. Molempiin intervalleihin on määrätty eri linkki. Näin ollen nollasta viiteen sekuntiin linkki on AudioVideoon ja viidestä kymmeneen sekuntiin linkki on Styleen ja kyseessä oleviin osoitteisiin pääsee klikkaamalla videota.

<video src="http://www.w3.org/CoolStuff">
<anchor href="http://www.w3.org/AudioVideo" begin="0s" end="5s"/>
<anchor href="http://www.w3.org/Style" begin="5s" end="10s"/>
</video>

http://www.w3.org/TR/REC-smil/


4 SMIL työkalut

4.1 SMIL -dokumenttien katselu

Nykyiset selaimet eivät vielä (ainakaan virallisesti) tue SMIL -dokumentteja. Microsoft on tosin tehnyt Internet Explorer version 5.5, jonka tulisi voida näyttää SMIL -dokumentteja, mutta selain on vielä beta-tasolla.

Seuraavat yhtiöt ovat kuitenkin lisänneet SMIL -dokumenttien katseluominaisuuden ohjelmistoonsa



http://www.w3.org/AudioVideo/

Yksi yleinen tapa katsoa SMIL -dokumentteja tällä hetkellä , on RealPlayerin tai QuickTimen avulla. Nämä ohjelmat kun löytyvät suurimmasta osasta tietokoneista ja ovat näin etulyönti asemassa verrattuna oudompiin sovelluksiin kuten GRiNSin ohjelmaan. Kuitenkin esimerkiksi GRiNS tarjoaa yhdessä rakennus-, muokkaus- ja katseluympäristön, joka olisi huomattavasti käytännöllisempi, jos esimerkiksi haluaisi tehdä itse SMIL-dokumentteja. Oudommat SMIL-dokumenttien katselu- ja editointiominaisuuksia omaavat ohjelmat ovat myös usein maksullisia, toisin kuin esimerkiksi RealPalyer, jonka saa ilmaiseksi itselleen Internetistä. Yleisten selainten aloittaessa tukemaan SMIL-dokumentteja, suurin osa käyttäjistä oletettavasti tukeutuu selainten ominaisuuksiin ja näin pääpaino siirtyy selaimille kuten Netscape ja Explorer.

4.2 SMIL -dokumenttien muokkaus

Vaikka SMIL ei vielä olekaan saavuttanut suurempaa huomiota, on sille olemassa jo editoreita, validaattoreita ja muita hyötyohjelmia. Esimerkiksi CWI SMIL Validator http://dejavu.cs.vu.nl/~symm/validator/ tarjoaa SMIL -dokumentin validiointi palvelua.

Editoreita löytyy esimerkiksi HotSausagen, Digital Renaissance ja niin edelleen ohjelmistotarjonnasta.

http://www.w3.org/AudioVideo/
Kuten jo aikaisemmin olen maininnut SMIL-dokumentin tekeminen ei kuitenkaan tarvitse muuta kuin teksti editorin kuten Notepad, joskin tarkoitukseen laaditulla editorilla työstäminen käy helpommin, eikä tarvitse katsoa kaikkea reference -manuaalista.

Jos henkilö hallitsee HTML:n on SMIL -dokumenttien tekemiseen helppo siirtyä, useat tagit kun toimivat samaan tyyliin. Uusiakaan ei ole sen vaikeampi oppia kuin HTML:n uusia tageja tai menetelmiä.

SMIL-dokumenttien teosta on Internetissä saatavilla useita tutoriaaleja. Nämä tutoriaalit ovat vieläpä erittäin hyviä ja havainnollisia. Kaikki olennaiset toiminnot on esitelty ja usein vieläpä tyyliin opi SMILeä SMILen avulla. Yksi parhaimmista on luultavimminkin Helion tarjoama tutoriaali, joka on hieman suppea, mutta erittäin havainnollinen. Lisäksi on tietysti olemassa SMIL 1.0 Specification, joka kertoo kaiken, SMILellä voi tehdä. SMIL 1.0 Specification löytyy osoitteesta http://www.w3.org/TR/REC-smil/



5 Tulevaisuus

Microsoft Internet Exprolerin 5.5 beta versio tukee SMIL-dokumentteja. Näin ollen mitä suurimmalla todennäköisyydellä selaimet tukevat SMIL -dokumentteja jo lähitulevaisuudessa. Tämä tarkoittanee sitä, että WWW-sivujen monipuolisuus tulevat kasvamaan ja ulkonäkö muuttumaan hieman monipuolisemmaksi. Useammat ominaisuudet tulevat myös hitaiden yhteyksien käyttäjien saataville, SMILen ominaisuuksien ansiosta. Onhan nykyäänkin jo useita Flash tekniikalla toteutettuja sivuja, mutta SMIL tulee olemaan yksi varteenotettava ja luultavastikin hyvin onnistunut tapa esittää mediaelementtejä WWW-sivuilla.

Tällä hetkellä SYMM (Synchronized Multimedia Working Group) pyrkii saavuttamaan W3C Proposed Recommendation Statuksen SMIL "Boston" :ille huhtikuuhun 2000 mennessä ja W3C Recommendation Statuksen kesäkuuhun 2000 mennessä. SMIL "Boston" tarkoituksena on moduloida SMIL seuraaviin moduuleihin: Animation, Content Control, Layout, Linking, Media Object, Metainformation, Structure, Timing and Synchronization and Integration Module (Integration Module on päälinja SMILen aikapohjaisuuden integrointiin muihin XML kieliin.) XHTML ja CSS saattavat tulevaisuudessa sisältää osan edellämainituista SMIL moduuleista. Esimerkiksi CSS saattaa tulla sisältämään niin sanotun "timesheetin".

Alla olevan esimerkin mukaan <STYLE > tagin avulla määritellään kullekin tyypille aika esimerkiksi LI tagille annetaan ajaksi viisi (5) sekuntia. Koska UL tagi on määritelty toimimaan seq tagin tyyliin eli elementti seuraa toista elementti peräjälkeen, näytetään listan ensimmäistä elementtiä nollasta viiteen sekuntiin (0-5s) ja listan toista elementtiä ensimmäisen elementin päättymisen jälkeen viisi sekuntia eli viidestä kymmenen sekuntiin (5-10s).

<HEAD>
<STYLE>
UL { timeLine: seq; }
LI { font-weight: bold; duration: 5s; }
</STYLE>
</HEAD>
<BODY>
<UL>
<LI> Lista elementti yks </LI>
<LI> Lista elementti kaksi </LI>
</UL>
</BODY>

Tämän kaltainen SMIL -kielen käyttö on luultavasti yksi suuri osa SMIL:n tulevaisuutta. SMIL:n hyvien ominaisuuksien lisääminen jo käytössä olevien kuvauskielten toiminnoiksi tulee parantamaan ja nopeuttamaan SMIL:n yhteensopivuutta ja käyttökelpoisuutta.

http://www.w3.org/AudioVideo/Activity.html

Lähteet

http://hagen.lel.rug.nl/hypertext/smil.html viitattu 18.2.2000
http://www.wdvl.com/Authoring/Languages/XML/SMIL/Intro/viitattu 18.2.2000
http://www.whatis.com/smil.htmviitattu 18.2.2000
http://www.w3.org/AudioVideo/ viitattu 18.2.2000
http://www.w3.org/Submission/1998/14/ viitattu 18.2.2000
http://www.w3.org/TR/REC-smil/ viitattu 24.2.2000

Valid HTML 4.0!