Diplomová práca Využitie technológie FLASH pre manažment multimediálneho obsahu Štefan Bačkor Žilinská univerzita v Žiline Elektrotechnická fakulte Katedra Telekomunikácií Študijný odbor: Telekomunikácie Vedúci diplomovej práce: Ing. Roman Jarina Stupeň kvalifikácie: inžinier (Ing.) Dátum odovzdania diplomovej práce: 18. 5. 2007
Abstrakt Diplomová práca rieši problematiku návrhu a realizáciu aplikácie umožňujúcej anotáciu multimediálnej databázy pomocou technológie Flash. Aplikácia umožňuje načítať multimediálny súbor, vytvoriť a editovať anotačný záznam a tento exportovať vo formáte XML MPEG-7 pre použitie v ďalších štandardizovaných editoroch. V úvode práce je predstavená technológia Flash a jej možnosti, výhody a nevýhody pre prácu s multimédiami. V praktickej časti je popísaný postup realizácie grafického a funkčného rozhrania a záver tvorí používateľská príručka. Abstract The thesis deals with design and implementation of web-based application that will allow users to annotate multimedia database using Flash technology. Application allows importing multimedia file, creating and editing annotation record and exporting results as MPEG-7 XML-based document. The thesis begins with introduction into the Flash platform technology, its possibilities and pros & cons in managing multimedia. Part of practical implementation is about describing way of realization GUI and the end includes user manual.
Žilinská univerzita v Žiline, Elektrotechnická fakulta, Katedra telekomunikácií ANOTAČNÝ ZÁZNAM - DIPLOMOVÁ PRÁCA Priezvisko, meno: Štefan Bačkor školský rok: 2006/2007 Názov práce: Využitie technológie FLASH pre manažment multimediálneho obsahu. Počet strán: 58 Počet obrázkov: 4 Počet tabuliek: 9 Počet grafov: 0 Počet príloh: 0 Použitá lit.: 15 Anotácia v slovenskom jazyku: Cieľom diplomovej práce je vytvoriť anotačný nástroj multimediálnej databázy použitím technológie Flash, pričom dátový výstup bude kompatibilný so štandardom MPEG-7 XML. Teoretická časť ponúka predstavenie platformy Flash, jej schopnosti pre prácu s multimédiami a čiastočne predstavuje formát MPEG-7. Anotácia v anglickom jazyku: Goal of this thesis is to build a Flash based multimedia database annotation tool, while the output data should be compatible with MPEG-7 XML standard. Theoretical part introduces Flash platform, its ability to handle multimedia and partially introduces MPEG-7 standard. Kľúčové slová: Flash, MPEG-7, XML, anotácia, audio, video, multimédiá, ActionScript, FFmpeg, PHPObject, Linux, Sorenson, VP6, MP3, Nellymoser, Flash Media Server, Red5 Vedúci práce: Ing. Roman Jarina, PhD. Recenzent práce: Dátum odovzdania práce: 18. 5. 2007
Obsah Úvod... 7 1 Anotácia videa... 8 2 Flash... 9 2.1 História... 10 2.2 ActionScript... 11 2.2.1 Časová os implementácie... 11 2.2.2 Syntax... 12 2.2.3 Kritika... 13 2.3 Pre a proti... 14 2.3.1 Nevýhody... 14 2.3.2 Výhody... 15 2.4 Video formát a kodeky... 17 2.4.1 Flash Video... 17 2.4.2 Video formát... 18 2.4.3 Možnosti distribúcie... 18 2.4.4 Sorenson kodek... 20 2.4.5 On2 TrueMotion VP6 kodek... 20 2.4.6 Pre a proti Flash videa... 21 2.5 Audio formát a kodeky... 22 2.5.1 MP3... 23 2.5.2 Nellymoser kodek... 23 2.5.3 ADPCM... 24 2.6 Streaming videa... 24 2.6.1 Progresívny download vs. Stream... 24 2.6.2 Flash Media Server... 26 2.6.3 Red5... 29 3 MPEG-7... 30 3.1 Názvy a význam elementov... 31 4 Praktická časť: Požiadavky a návrh... 34 5 Praktická časť: Realizácia... 36 5.1 Server... 36
5.1.1 LAMP... 36 5.1.2 Databázový model... 37 5.1.3 Streaming videa... 39 5.1.4 Komunikácia klient-server (AMF)... 40 5.1.5 PHPObject... 40 5.2 Aplikácia... 43 5.3 Publikovanie obsahu... 44 6 Praktická časť : Užívateľský manuál... 45 6.1 Odporúčané a minimálne systémové prostriedky... 45 6.2 Vstupné a výstupné formáty a kódovanie... 46 6.3 Rozdelenie a popis častí užívateľského rozhrania... 48 6.4 Klávesové skratky... 52 7 Záver... 53 8 Použitá literatúra... 56 9 Čestné vyhlásenie... 57 10 Poďakovanie... 58
Úvod Informácia je výsledok spracovania, manipulácie a organizovania dát, spôsobom, ktorý má pre prijímateľa vedomostnú hodnotu. 1 Obzvlášť na počiatku 21. storočia, kedy ľudstvo vstúpilo do veku informačných technológií a digitalizácie, si stále viac začína uvedomovať potrebu jednoduchého prístupu a schopnosti efektívne vyhľadávať v tomto mori dát. Tejto úlohy sa ochotne zhostila celosvetová informačná sieť Internet. Spolu s novými technológiami revolučných algoritmov vyhľadávania Google, publikovania obsahu pomocou technológie Flash, evolúciou webu smerom k Web 2.0 aplikáciám a mnohými ďalšími dnes Internet tvorí prostredie, bez ktorého si už modernú informačnú spoločnosť ani nevieme predstaviť. Textová informácia sa od multimediálnej odlišuje v mnohých aspektoch. Problematická automatizácia indexovania obsahu audio alebo video dát, si často vyžaduje zásah človeka. Aby tak multimediálne dáta dosiahli svoju informačnú hodnotu na poli vyhľadávania a plnohodnotne mohli konkurovať binárnym alebo textovým, bolo potrebné vytvoriť určitý štandard. Pre zjednotenie aplikácií, umožňujúcich anotáciu obsahu multimediálnych súborov, vznikol štandard MPEG-7. Teoretická časti tejto práce má za úlohu oboznámiť čitateľa s technológiou Flash a obhájiť tak jeho pozíciu pri prezentovaní multimediálnych dát v prostredí Internetu. Cieľom praktickej časti tejto práce bude vytvoriť webovú aplikáciu na platforme Flash, výstupom kompatibilnú so štandardom MPEG-7, schopnú užívateľovi zjednodušiť a spríjemniť anotačný proces v multimediálnych video dátach. 1 http://en.wikipedia.org/wiki/information strana 7
1 Anotácia videa Anotácia, je proces priradenia extra doplňujúcej informácie k určitej časti alebo bodu dokumentu. 2 Anotácia videa spočíva v priradení alebo označení určitej oblasti alebo scény na časovej osi kľúčovým slovom respektíve takzvanou značkou. Cieľom takéhoto procesu môže byť vytvorenie databázy alebo sprievodného XML súboru vo formáte štandardu MPEG-7, ktorý bude následne možné určitým spôsobom prehľadávať alebo inak analyzovať. 2 http://en.wikipedia.org/wiki/annotation strana 8
2 Flash Flash je dnes snáď jeden z najznámejších pojmov Internetu a multimediálnej prezentácie vôbec. V skutočnosti tento pojem označuje technológie a produkty Adobe Flash Player a Adobe Flash Professional. Adobe Flash Player, ako už názov napovedá, je klientske virtuálne prostredie, prehrávač, Flash obsahu, filmu, dostupný najčastejšie ako samostatná aplikácia alebo rozšírenie pre dnes už všetky najpoužívanejšie webové prehliadače. Adobe Flash Professional je publikačný nástroj, vyvíjaný a distribuovaný spoločnosťou Adobe Systems, určený k tvorbe Flash obsahu akým sú webové aplikácie, hry alebo filmy interpretované Flash Playerom pre akékoľvek zariadenia podporujúce túto technológiu. V súčasnosti sa jedná hlavne o webové prehliadače a mobilné zariadenia. Adobe Flash Professional predstavuje podporu pre obojsmerné streamovanie audia, videa, vektorovú a rastrovú grafiku, a skriptovací jazyk nazývaný tiež ActionScript. Presnejšie povedané, Adobe Flash Professional je integrované vývojové prostredie (IDE), zatiaľ čo Flash Player je virtuálny stroj používaný k spúšťaniu alebo parsovaniu Flash súborov (.swf). V súčasnej hovorovej reči pojem Flash predstavuje publikačné prostredie, prehrávač, alebo súbory aplikácie. Technológia Flash sa stala od jej uvedenia v roku 1996 populárnou metódou pre vkladanie interaktívnych prvkov a animácií do webových stránok. Vytvoriť a zobraziť Flash už dnes dokáže množstvo softvérových produktov, systémov a zariadení. Flash sa najčastejšie využíva k tvorbe animácii, reklamy, rôznych komponentov web stránok, k integrácii videa a audia s webom a stále častejšie k vytváraniu Rich Internet Applications (nástrojov a aplikácií, ktorých cieľom vytvorenia je aj táto diplomová práca) primárne určených pre web, ale vlastnosťami a použiteľnosťou nezaostávajúcimi za desktopovými aplikáciami. strana 9
Súbory Flashu, tiež nazývané Flash filmy, majú príponu swf, čo je akronym k Small Web Format a Shockwave Flash. 3 Tieto môžu byť objektom web stránky, výlučne interpretovaným Flash Playerom, alebo súčasťou tzv. Projektora, samo spúšťajúceho sa Flash filmu. Súbory Flash, obsahujúce video, majú príponu flv. Skratka pochádza z akronymu Flash Video. Súbory sú importované do samotného SWF formátu alebo tiež linkované z externých zdrojov. 4 2.1 História Flash sa zrodil zo série myšlienok a nápadov Jonathana Gaya, ktoré sa datujú až niekde k roku 1980. Postupne formovaný ako idea stredoškoláka, neskôr vysokoškoláka a potom zamestnanca Silicon Beach Software. V januári 1993 Jonathan Gay, Charlie Jackson a Michael Welsh založili malú firmu s názvom FutureWave a spolu vytvorili ich prvý produkt SmartSketch. Aplikácia určená na kreslenie bola navrhnutá pre vytváranie počítačovej grafiky jednoduchým spôsobom, ako kreslenie na samotný papier. Aj keď bol SmartSketch vo svojej podstate inovatívnym kresliacim nástrojom, nikdy na trhu nedosiahol výraznejšie úspechy. Spolu s počiatočným rozmachom Internetu si vo FutureWave začali uvedomovať potenciál animačného nástroja určeného pre webovú grafiku, ktorý by mohol bez problémov konkurovať v tej dobe ťažkopádnej technológii Shockwave od Macromedie. V roku 1995 vo FutureWave upravili SmartSketch. Do aplikácie pridali časovú os, editáciu spôsobom rámček po rámčeku a znovu ho uviedli pod názvom FutureSplash Animator pre platformy Macintosh a PC. V tom čase firma prijala dalšieho programátora Roberta Tatsumiho, umelca Adama Grofcsika a špecialistu pre vzťahy z verejnosťou Ralpha Mittmana. Produkt bol najprv ponúknutý spoločnosti Adobe, no v decembri 1996 ho získala spoločnosť Macromedia a neskôr vydala pod názvom Flash 1.0. V tej dobe bol už FutureSplash hojne využívaný napríklad Microsoftom v jeho počiatkoch práce s Internetom (MSN Network). 3 http://en.wikipedia.org/wiki/swf 4 http://en.wikipedia.org/wiki/flv strana 10
Spoločnosť Macromedia bola v roku 2005 kúpená firmou Adobe. Tá v súčasnosti vydáva aktuálnu verziu publikačného nástroja Adobe Flash Professional CS3 a Flash Player 9 s podporou ActionScriptu 3. 2.2 ActionScript ActionScript je skriptovací jazyk založený na štandarde ECMAScript (tiež známeho ako JavaScript), a je primárne využívaný k vývoju softvéru pre Adobe Flash Player. Aplikácie vyvíjané použitím Adobe Flash alebo Adobe Flex často využívajú ActionScript k runtime manipulácii s dátami a obsahom. Ostatné platformy, ako napriklad Macromedia ColdFusion, taktiež podporujú skriptovanie jazykom ActionScript. ActionScript sa vo svojej podobe syntaxu po prvý krát objavil vo vydaní Flash 5, ktorý bol prvou programovateľnou verziou Flashu. Toto vydanie ActionScriptu bolo nazvaným ActionScript 1.0. Flash 6 (MX) potom ďalej rozširoval užitočnosť programovacieho prostredia pridaním viacerých zabudovaných funkcií a umožnením lepšej programovateľnej kontroly elementov filmu. Vo Flash 7 (MX 2004) bol predstavený ActionScript 2.0. Priniesol vlastnosti ako objektové programovanie založené na triedach, explicitnú deklaráciu tried, inheritanciu, rozhrania a striktnú deklaráciu premenných. Vo Flashových SWF súboroch zdiaľajú ActionScript 1.0 a ActionScript 2.0 tú istú formu kompilácie. 2.2.1 Časová os implementácie Flash Lite 1.0 a 1.1 Flash Lite je Flash technológia špeciálne vyvíjaná pre mobilné zariadenia a zariadenia spotrebnej elektroniky. Flash Lite 1.1 podporuje ActionScript Flash 4. Flash Lite 2.1 Pridáva podporu pre ActionScript 2.0 Flash 7. strana 11
Flash Player 2 Prvá verzia s podporou skriptovania. Akcie obsahovali gotoandplay(), gotoandstop(), nextscene(), nextframe() funkcie pre ovládanie časovej osi videa. Flash Player 3 Rozšíril základnú podporu skriptovania s možnosťami načítať externé SWF video. Flash Player 4 Prvý prehrávač s plnou implementáciou skriptovania (nazývanou Akcie). Skriptovanie obsahovalo podporu pre cykly, podmienky, premenné a ostatné základné konštruktory jazyka. Flash Player 5 Obsahoval prvú verziu true ActionScriptu. Používal programovanie založené na Prototypoch podľa štandardu ECMAScript a umožňoval plne procedurálne a objektovo orientované programovanie. Flash Player 6 pridal podporu pre správu udalostí a podporu prepínania. Flash Player 7 Flash Player 7 ponúkol niekoľko nových doplnkov ako napríklad CSS text a vylepšenie výkonu. Macromedia Flash kompilátory vydané zároveň s Flash Player 7 tiež podporovali ActionScript 2.0. Taktiež ActionScript 2.0 môže byť prekompilovaný na ActionScript 1.0 bitový kód, takže môže byť spúšťaný aj Flash Playerom 6. Flash Player 8 Naďalej rozširuje ActionScript 2.0 pridaním knižníc s API pre runtime kontrolu bitmapových dát počas behu a nahrávanie súborov na server. Flash Player 9 s príchodom nového virtuálneho stroja, nazývaného AVM2 (ActionScript Virtual Machine 2) pridal ActionScript 3.0. AVM2 koexistuje s predchádzajúcou AVM1 potrebnou pre spätnú kompatibilitu. Pre toto vydanie bolo hlavným cieľom zvýšenie výkonu. 2.2.2 Syntax V ActionScripte je možné deklarovať triedy, a priraďovať im prvky z knižnice. Triedy sa zvyčajne vo Flash IDE deklarujú v externých súboroch s príponou as, priamo v poliach časovej osi, alebo sú priradené k objektom na scéne a vykonávané ako akcie. Externé ActionScript súbory môžu byť tiež editované akýmkoľvek textovým editorom a následne skompilované spolu s aplikáciou. Externé súbory ActionScriptu môžu byť strana 12
skompilované tiež pomocou Motion Twin ActionScript2 Compileru (MTASC). Triedy sú rozšírenia jazyka ActionScript, ktoré si programátor môže vytvárať sám. Vo Flashi existuje viacero zabudovaných tried ako napríklad MovieClip, ktorá môže byť použitá k vykresleniu vektorov dynamicky. Súbory s triedami môžu byť medzi rôznymi projektmi presúvané a tak uľahčovať programovanie. Vlastnosti implementácie ActionScriptu v aplikácii Flash: - Prostredie je navrhnuté pre asynchrónny beh skriptov. - Už Flash verzie 5 môže prijímať a odosielať XML. Vývojové prostredie Flashu tiež ponúka referencie, dopĺňanie kódu a zvýraznenie syntaxe. 2.2.3 Kritika Kompiler ActionScriptu 2.0 od Macromedie je často pomalý. Skompilovanie 100 tried môže niekedy trvať aj niekoľko minút. Open-source kompiler MTASC je omnoho rýchlejší. Aj napriek tomu, že syntax ActionScriptu je veľmi tolerantná, čítanie nečistého kódu je často náročné. Dlhoroční JavaScript a ActionScript programátori považujú na triedach založené programovanie so striktne dátovými typmi, uvedené verziou 2.0, za oveľa viac náročnejšie ako predchádzajúce verzie jazyka. Pred začatím programovania je potrebné do Flash 8 importovať niektoré triedy, čo môže byť niekedy únavné. ActionScript 3.0 sa plne spolieha na import tried a scriptovanie bez nich je prakticky nemožné. SWF formát je jednoduché dekompilovať. Kód je veľmi ťažké ochrániť pred kopírovaním. Niektoré programy ale dokážu SWF zašifrovať, a tak skomplikovať ba až znemožniť jeho dekompiláciu. S príchodom ActionScript 3.0 by sa to malo zmeniť. strana 13
2.3 Pre a proti 2.3.1 Nevýhody Použiteľnosť (Usability) Ak sa užívateľ snaží pohybovať vo Flash videu vytvorenom v staršej verzii, nebude mu fungovať tlačidlo webového prehliadača Späť. Namiesto na predchádzajúcu obrazovku ho vyvedie von zo stránky. Taktiež vo Flash aplikácii nefunguje nastavenie veľkosti textu podľa nastavenia prehliadača a štandardné zafarbenie už navštívených liniek. Často je nemožné prirodzene posúvať kolieskom myši väčší blok textu. Vo Flashi nie je možné použiť bežné vyhľadávanie webového prehliadača. SEO (Search Engine Optimalization) Dnes veľmi populárny pojem Optimalizácia pre vyhľadávače pre Flash znamená, že sa vyhľadávač nie je schopný dostať do animácie a indexovať obsah. Aj napriek tomu veľké vyhľadávače ako Google sú do istej miery schopné indexovať obsah Flashu, tieto schopnosti sú ale zatiaľ dosť obmedzené. Jednou z možností ako vyriešiť prístup vyhľadávačov je vytvoriť ďalšiu alternatívnu HTML verziu stránky, čo ale často predstavuje ďalšie výdaje peňazí a času. Hardvérové nároky Vo Flash videu záleží na veľkosti scény, počte objektov, alpha kanálov a masiek. Stačí napríklad scéna s rozmermi 1100x600 pixelov, rýchlosť 30 rámcov za sekundu, aspoň 15 hýbajúcich sa polopriesvitných objektov a už to na bežnom kancelárskom PC so spustenými viacerými aplikáciami môže sekať. Oveľa väčšiu efektivitu pri hospodárení s výkonom priniesol Flash Player 9 a s ním spojený ActionScript 3. strana 14
Ochrana SWF súborov Ochrana SWF súborov je na veľmi nízkej úrovni. Na internete je dnes dostupné veľké množstvo softvéru schopného dekompilovať Flash. Síce existujú techniky ako SWF zašifrovať, ale toto nie je vo Flash IDE natívne podporované kompilátorom. Dostupnosť Pre vzhliadnutie Flash animácií užívateľ potrebuje Flash Player, ktorý už síce je obsiahnutý v každej základnej inštalácii Windows XP, avšak dnes už v dosť archaickej verzii. Aj keď samotná inštalácia Flash Playera je veľmi jednoduchá a inicializuje sa automaticky pri pokuse o zobrazenie Flash obsahu bez potrebného rozšírenia v prehliadači, neskúseného užívateľa môže zaskočiť. Aj napriek tejto forme distribúcie dnes rozšírenie Flash Playera dosahuje penetráciu 98,3% PC pripojených k internetu 5, takže túto nevýhodu môžeme pokojne zanedbať. 2.3.2 Výhody Veľkosť výstupu Vďaka prevládajúcemu použitiu vektorovej grafikou nad bitmapovou je výsledná veľkosť SWF súboru nízka. Rozdiel medzi vektormi a bitmapou je v tom, že pri vektoroch je objekt zapísaný ako rovnica, no pri bitmapách ako postupnosť za sebou idúcich pixelov. Veľkosť súboru môže ovplyvniť hlavne množstvo použitých bitmáp, priložených fontov a multimediálnych súborov. 5 http://www.adobe.com/products/player_census/flashplayer/ strana 15
Interaktivita Flash môže reagovať na pohyb myši, stláčanie kláves, chovanie sa externých objektov. Možnosti sú dnes vďaka Flash Media Serveru takmer neobmedzené aj pre on-line hry viacerých hráčov. Audio a video Priamo do Flashu je možné vložiť audio a video. Podpora formátov je pomerne veľká a pri exporte je možné efektívne meniť kompresiu, počet kanálov a iné vlastnosti multimediálneho obsahu. Streaming Predpripravené komponenty pre prehrávanie multimédií, Flash Media Server a dnes už aj open-source alternatíva Red5 umožňujú vynikajúcu podporu Flashu pre streaming videa a audia. Rovnaký vzhľad nezávisle od platformy Prezentácie a aplikácie vytvorené vo Flashi budú vyzerať úplne identicky nezávisle od platformy, operačného systému a nastavení prostredia. Použitie akéhokoľvek písma Vo Flashi je možné využiť prakticky akékoľvek písmo bez ohľadu na to, či ho má užívateľ nainštalované. Písmo môže byť pri exporte vektorizované alebo priamo pribalené k výslednému SWF súboru. strana 16
Jednoduchý návrh dizajnu Výhodou hlavne oproti HTML je, že vo Flashi sa dizajn jednoducho nakreslí a neexistujú žiadne obmedzenia spôsobené nekompatibilitami prehliadačov s HTML štandardom (cross-browser kompatibilita). Previazanosť s externými súbormi Flash animácie môžu nakladať s externými informáciami uloženými napríklad v klasickom textovom súbore, poprípade modernom XML. Dáta do Flashu môže pumpovať aj známe PHP. Výhody sa naskytnú hlavne pri prepojení s rôznymi databázami, alebo dynamickým importom nastavení. 2.4 Video formát a kodeky 2.4.1 Flash Video FLV (Flash Video) je proprietárny formát súboru používaný k doručeniu videa Internetom použitím Flash Playera. Obsah FLV tiež môže byť pripojený ako súčasť SWF súboru. Medzi služby najviac využívajúce FLV formát patria hlavne YouTube, Google Video, Reuters.com, Yahoo! Video a MySpace. Flash Video je možné prehrať na takmer všetkých dostupných operačných systémoch hlavne vďaka Adobe Flash Playeru, pluginu pre webové prehliadače, alebo jedným z mnohých third-party programov ako napríklad MPlayer, VLC media player, alebo akýmkoľvek prehrávačom ktorý využíva DirectShow filtre (Windows Media Player, Windows Media Center) spolu s ffdshow. strana 17
2.4.2 Video formát Zvyčajne súbory FLV obsahujú bitové toky, ktoré sú variáciou H.263 video štandardu pod názvom Sorenson Spark. Flash Player 8 a novšie podporujú prehrávanie dátových tokov On2 TrueMotion VP6 videa. On2 VP6 dokáže poskytnúť vyššiu vizuálnu kvalitu ako Sorenson Spark, špeciálne pri použití nižších bitových rýchlostí. Na druhej strane je výpočtovo náročnejší, takže na starších konfiguráciách nepobeží tak plynulo. Podporovaný je tiež voliteľný alpha kanál, ktorý reprezentuje priesvitnosť pixelu. Pridanie alpha kanálu bolo dosiahnuté doplnením ďalšieho simultánneho video toku ktorý kóduje iba alpha kanál a zahadzuje akúkoľvek chromatickú informáciu. Implementácia vytvára predpoklad, že YUV dáta hlavného On2VP6 video toku sú vždy klientom prekonvertované na RGB ešte pred výstavbou ako výsledkom prenásobenia RGB hodnôt alpha hodnotami a adekvátne vykreslené. Túto možnosť poskytuje len dátový tok zakódovaný On2 VP6 kodekom. FLV formát súboru podporuje dve verzie screenshare kodeku, čo je formát vytvorený špeciálne pre screencasty (nahrávky obrazovky, využívané napríklad pri prezentáciách, vytváraní návodov a manuálov k softvérovým produktom). Oba tieto formáty sú založené na dlaždicovom skladaní bitmáp, pričom tieto môžu byť stratové redukciou farebnej hĺbky alebo komprimované použitím zlib knižnice (open-source knižnice používanej v gzip kompresii). Druhú verziu je možné prehrať len vo verzii Flash Player 8 a novších. Podpora pre kódovanie do FLV formátu je poskytovaná kódovacím nástrojom distribuovaným spolu s publikačným nástrojom Adobe Flash Professional 8, kódovacími nástrojmi Flix od On2, softvérom Sorenson Squeeze, balíkmi FFmpeg a ďalšími nástrojmi od tretích strán. 2.4.3 Možnosti distribúcie FLV súbory môžu byť distribuované niekoľkými odlišnými spôsobmi: strana 18
Ako samostatné FLV súbory. Aj keď sú FLV súbory bežne distribuované pomocou Flash Playera, FLV ako také je plne funkčné a môže byť prehrávané ako akýkoľvek iný formát z lokálneho disku alebo iného média. Pripojené vnorením k SWF súboru použitím publikačných nástrojov Flashu. Predtým než začne prehrávanie, musí byť prenesený celý súbor. Úpravy vo videu znamenajú prekompilovanie SWF súboru. Progresívny download cez HTTP (podporovaný už verziou Flash Playera 7) predstavuje postupné sťahovanie dát zároveň s ich prehrávaním. Táto metóda využíva ActionScript pre vloženie externe uložených FLV súborov pre prehrávanie na strane klienta. Progresívny download má niekoľko výhod, vrátane bufferovania, využitia bežných HTTP serverov, a schopnosti znova použiť ten istý prehrávač v SWF pre viaceré zdroje FLV. Flash Player 8 obsahuje podporu pre náhodný prístup vo vnútri video súboru použitím HTTP funkcie čiastkového stiahnutia, niekedy je táto uvádzaná ako streamovanie. Na rozdiel od streamovania použitím RTMP protokolu, HTTP streaming nepodporuje vysielanie v reálnom čase. Streaming cez HTTP vyžaduje upravený prehrávač a poskytnutie špeciálnych meta dát obsahujúcich presnú štartovaciu pozíciu v bytoch a časový kód každého rámca. Využitím týchto špecifických informácií si môže FLV prehrávač vyžiadať akúkoľvek časť FLV súboru začínajúcu na špecifickom kľúčovom rámci. Napríklad Google Video podporuje progresívny download a umožňuje skočiť na akúkoľvek pozíciu vo videu ešte pred načítaním do buffera, na rozdiel od YouTube, ktorý to nedokáže. Implementovať toto pseudo streamovanie na strane servera je pomerne jednoduché, napríklad pomocou PHP alebo HTTPD modulu Apacha. Streaming cez RTMP pre Flash Player použitím Flash Media Servera, VCS (Video Communication Server) alebo open-source Red5 servera. strana 19
2.4.4 Sorenson kodek Sorenson kodek, tiež známy ako Sorenson Video Kodek, Sorenson Video Quantizer alebo SVQ, je digitálny video kodek vynájdený spoločnosťou Sorenson Media. Využívajú ho aplikácie ako Apple QuickTime a Macromedia Flash. Sorenson Video kodek sa po prvýkrát objavil v aplikácii QuickTime 3 (30. marca 1998). Sorenson Video 2 bol vydaný v marci 1999, hoci z väčšej časti obsahoval len menšie vylepšenia a optimalizáciu pre Developers Edition kódera, pretože filmy ním kódované boli spätne kompatibilné so Sorenson Video dekóderom. Vylepšená verzia Sorenson Video 3 kodeka debutovala vydaním QuickTime 5.0.2 (1. Júla 2001). Keď sa spoločnosť Apple začala viac zameriavať na neproprietárne kodeky ako MPEG-4, Sorenson Media licencovala novšiu verziu kodeku Macromedii ako Sorenson Spark (Sorenson H.263), vydaného spolu s Macromedia Flash 6/MX (4. marca 2002). Špecifikácia kodeku nikdy nebola verejná a po dlhý čas jediná cesta ako prehrať Sorenson video bolo použiť QuickTime player od Apple, alebo MPlayer pre Unix/Linux ktorý využil Microsoft Windows DLL knižnice extrahované z prehrávača od Apple. Podľa anonymného vývojára FFmpeg aplikácií, reverzné inžinierstvo SVQ3 kodeka odhalilo upravenú verziu H.264 formátu. Ten istý vývojár tiež pridal do FFmpegu podporu pre tento kodek a vytvoril tak natívny prehrávač pre všetky platformy podporované FFmpegom. 2.4.5 On2 TrueMotion VP6 kodek TrueMotion VP6 je video kodek vyvinutý spoločnosťou On2 Technologies je reakciou na skoršie pokusy ako napríklad VP3 a VP5. VP6 kodek bol využívaný v produktoch pre vysielanie v teréne tiež BBC reportérmi a QuickLink softvérom. V januári 2005, On2 ohlásila nový VP7 kodek s lepšími kompresnými vlastnosťami ako VP6. V auguste 2005, Macromedia oznámila že si vybrala VP6 ako hlavný kodek pre video prehrávanie v novom Flash Player 8. strana 20
V septembri 2006 sa implementácia VP6 dekodéra stala súčasťou libavcodec projektu, ktorý je súčasťou kodekov open-source iniciatívy FFmpeg. 2.4.6 Pre a proti Flash videa 2.4.6.1 Výhody Penetrácia Flash Player, a teda aj kodek schopný prehrať FLV video je dnes zastúpený na približne 98% počítačoch pripojených k internetu. Ak by mal byť dosiahnutý taký istý stupeň kompatibility bez Flashu, bolo by potrebné ponúkať video prinajmenšom vo dvoch verziách (Windows Media a QuickTime resp. Real Media). Konzistencia a kompatibilita Flash videá sú úplne konzistentné, to znamená že ak sa raz video otestuje a implementuje, vždy sa zobrazí rovnako všetkým koncovým užívateľom. To isté platí aj pre obsah samotného Flashu. Pokročilé možnosti Flash ponúka jedinečné a pokročilé možnosti v práci s interaktívnym obsahom. Porovnávať ho možno len s QuickTime videom. strana 21
2.4.6.2 Nevýhody Práca s FLV súbormi FLV je video formát Flashu. Nevýhoda spočíva v tom, že to nie je bežný formát ako napríklad Windows Media alebo QuickTime, práca so súbormi môže byť menej pohodlná hlavne kvôli nutnosti konvertovať video z najpoužívanejších formátov do FLV. Konverzia zaberá výkon, čas a uberá na kvalite. FLV súbory nie sú natívne podporované operačnými systémami, takže pri snahe o spustenie takéhoto súboru dialógové okno zahlási neznámy formát. Výkon pri kódovaní Občas je možné stretnúť sa s názorom, že Flash video vyžaduje pri zachovaní kvality vyšší dátový tok a tým aj veľkosť súboru. V minulosti to bola určite pravda, ale príchodom Flash 8 a kodekom On2 VP6 sa situácia zmenila v prospech Flashu. Flash Media Encoder distribuovaný spolu s Flash Professional vývojovým prostredím je nestabilný a má vysoké systémové nároky. Počiatočná náročnosť Aj keď je možné publikovať Flash video bez akýchkoľvek predchádzajúcich znalostí za menej ako hodinu, s inými formátmi je možné dosiahnuť to isté omnoho rýchlejšie. 2.5 Audio formát a kodeky Audio v FLV súboroch je zvyčajne kódované formátom MP3. FLV súbory nahrané mikrofónom na strane užívateľa používajú proprietárny kodek Nellymoser. strana 22
V súčasnosti ešte nie je k dispozícii žiaden open-source produkt schopný dekódovať Nellymoser. Flash Video tiež podporuje formát ADPCM alebo nekomprimované audio. 2.5.1 MP3 MPEG-1 Audio Layer 3, tiež nazývaný MP3, je jedným z najznámejších kódovaní digitálneho audia. Stratový kompresný formát a algoritmus je navrhnutý tak, aby efektívne zredukoval množstvo dát potrebných k reprezentácii audia. Aj napriek stratovosti sa pre väčšinu poslucháčov stále javí ako verná reprodukcia originálu. MP3 bol vytvorený tímom európskych inžinierov spoločnosti Philips, CCETT, IRT a Fraunhoferovho inštitútu, ktorí pracovali vo frameworku programu pre digitálny rádiový výskum EUREKA 147 DAB. Štandardom ISO/IEC sa stal v roku 1991. MP3 je špecifický audio kompresný formát. Použitím psychoakustického modelu poskytuje reprezentáciu pulzne kódovo modulovaného audia na oveľa menšom priestore ako priame metódy. Model odstráni ľudským uchom nepočuteľné frekvencie. 2.5.2 Nellymoser kodek Nellymoser je jednokanálový mono formát optimalizovaný pre prenos audia pri nízkych dátových tokoch. Tento formát bol vyvinutý firmou Nellymoser Inc. a pri kódovaní využíva tzv. Asao kódovací proces. Asao pri kompresii využíva spracovanie zvuku vo frekvenčnej oblasti. Dáta sú zoskupené do rámcov o veľkosti 256 vzoriek. Pre identifikáciu frekvencií s najväčšou amplitúdou je každý rámec transformovaný do spektrálnej oblasti. Pri kódovaní je vybratých niekoľko najvýraznejších frekvencií, ostatné sa zanedbajú. Dátový tok pre každý rámec nesie informáciu o využitých frekvenčných rozsahoch a ich amplitúdach. Tento kodek neberie v úvahu aktuálnu vzorkovaciu frekvenciu, má fixný pomer medzi počtom vstupných vzoriek a výstupnou veľkosťou paketu (1bit pre 1Hz). Preto kvalita pre vzorkovanie nižšie ako 16kHz rapídne klesá. strana 23
Nellymoser vo Flash Videu Nellymoser je uzavretý formát, ktorý vlastní firma Nellymoser Inc. a donedávna neexistoval spôsob, ako nahraný hlas kódovať do iného formátu bez vlastnenia licencie. Nellymoser ponúka transkóder, ktorý stojí niekoľko tisíc dolárov a licencia obsahuje obmedzenia, ktoré vyžadujú podiel zo zisku. V tomto kontexte nie je možné zdieľať technológiu, ktorú vyvinie tretia strana ako on-line službu. Nellymoser kodek je súčasťou Flash Playera od verzie 6. Metódy kódovania a dekódovanie sú rovnaké ako pri MP3 alebo Vorbis. Hlavný rozdiel je v tom, že Nellymoser Asao je optimalizovaný pre realtime prenos reči, nízke dátové toky a kódovanie/dekódovanie s nízkou latenciou. Kódovanie sa deje na strane klienta a Flash Player neumožňuje užívateľovi výber iného kodeku. 2.5.3 ADPCM Pulzne kódová modulácia (PCM) je digitálnou reprezentáciou analógového signálu, kde je amplitúda signálu v pravidelných intervaloch rovnomerne vzorkovaná a následne kódovaná do postupnosti symbolov digitálneho (binárneho) kódu. Adaptívna PCM (ADPCM) je variantom diferenciálnej PCM, ktorá mení a prispôsobuje veľkosť kvantizačného kroku. Umožňuje tak redukciu potrebnej šírky pásma daného odstupu pomeru signál/šum. 2.6 Streaming videa 2.6.1 Progresívny download vs. Stream Jednosmerné video vytvorené napríklad nástrojom Flash Professional, môže byť k užívateľovi doručené použitím progresívneho downloadu alebo streamom pomocou streamovacieho servera. strana 24
Postupné sťahovanie (progresívny download) je spôsob prístupu k videu, pri ktorom sa video spustí po krátkom naplnení buffera Flash Playera. Zvyšok videa je ku klientovi postupne sťahovaný počas prehrávania. Počas sťahovania je pohyb vo videu možný len v častiach, ktoré sú už stiahnuté. Poskytnúť takéto video je pomerne jednoduché, stačí k tomu web server. Progresívny download poskytuje dostatok pohodlia hlavne pri krátkych videách, ktoré k naplneniu buffera nepotrebujú dlhý čas. Vďaka tomu, že video je do klientskeho počítača už raz stiahnuté, užívateľ ho môže opakovane prehrať lokálne bez potreby pristupovať k dátam ešte raz. Streamované video klientovi posiela dáta v reálnom čase. Takto doručené dáta sú prehrávané a vzápätí zahadzované. Streamovací server ako napríklad Flash Media Server alebo Red5 môže vytvoriť inteligentné spojenie klient-server tak, aby dokázal odpovedať na požiadavky klienta a prispôsoboval sa parametrom spojenia. Pretože sa streamované video spúšťa rýchlejšie, je prehrávané v reálnom čase a umožňuje užívateľom pristúpiť k rôznym častiam videa takmer okamžite bez toho, aby musel klient najprv stiahnuť časť medzitým. Toto je najvhodnejšie riešenie pre dlhé videá, živé vysielania a aplikácie, ktoré často komunikujú s užívateľom. Streamované video optimalizuje doručenie dát veľkému množstvu klientov, pretože poskytuje len tú časť, ktorá je potrebná. Progresívne sťahované video poskytuje video tak rýchlo, ako to umožňuje prijímacia strana. Streamované video tiež redukuje celkovú záťaž linky a výkon serverov. Nasledujúca tabuľka zhrnie rozdiely medzi videom poskytnutým progresívnym sťahovaním a streamom. Porovnanie výhod streamovaného a progresívne sťahovaného videa Výhody Streaming Sťahovanie Živé vysielanie Rýchly štart Dlhé klipy Rýchly náhodný prístup k rôznym častiam videa Špeciálny server X X X X X strana 25
Trvalá vysoká kvalita pri rôznych rýchlostiach pripojenia Obsah je stiahnutý ku klientovi Obsah ostáva na serveri (nemôže byť uložený klientom) X X X 2.6.2 Flash Media Server Flash Media Server (v minulosti nazývaný Flash Communication Server) je enterprisegrade server pre dáta a médiá vyvinutý spoločnosťou Adobe Systems Inc. (pôvodne produkt Macromedie). Server spolupracuje s prehrávačom Flash Player, a spolu vytvárajú takzvané multimediálne multi užívateľské komplexné internetové aplikácie (Rich Internet Applications). Flash Media Server pre logiku na strane servera používa ActionScript. História 15. marca 2002 bola Macromediou vydaná verzia Flash Playera 6, pre platformu jedna z najvýznamnejších. Čoskoro sa stala najrýchlejšie sa šíriacim softvérom v počítačovej histórii. Táto verzia obsahovala všetku funkcionalitu potrebnú pre vtedy vydaný Flash Communication Server MX. Prvá verzia bola vydaná v júli 2002 a obsahovala všetky základné prvky, ktoré zadefinovali produkt, vrátane objektov NetConnection, SharedObject a NetStream. V apríli 2003 bola vydaná nasledujúca verzia 1.5, ktorá ponúkala HTTP tunneling, podporu pre Linux a vývojársku edíciu zdarma. 15. novembra 2005 bola vydaná v súčasnosti najaktuálnejšia verzia 2.0. Produkt zmenil názov na Flash Media Server, údajne aby lepšie vystihol to, pre čo je určený. Číslovanie verzií nebolo vynulované, aj napriek novému názvu. Verzia 2.0 so sebou priniesla podporu pre stream On2 VP6 video kodeku pre Flash Player 8. S novou verziou servera bola tiež predstavená enterprise architektúra edge-origin, ktorá má za úlohu strana 26
zjednodušiť rozdelenie záťaže medzi viac serverov. Vylepšenia sa tiež dočkal ActionScript na strane servera a to podporou pre XML, SOAP (protokol pre výmenu správ na báze XML) a prácu so súbormi. Použitie Video on Demand (video na požiadanie), streamovanie videa uloženého na serveri flash klientovi. Live Video (video naživo), pre aplikácie umožňujúce užívateľom vysielať naživo ich vlastné videá z web kamery ostatným klientom alebo serveru, ktorý ho spracuje pre neskoršie poskytnutie. Real Time Communication (komunikácia v reálnom čase), pre aplikácie, ktoré vyžadujú spoluprácu medzi viacerými klientmi, ako napríklad chat alebo hry pre viac hráčov v reálnom čase. Ako to funguje? Flashová aplikácia sa pripojí na FMS server pomocou RTMP (Real Time Messaging Protocol) protokolu. Server potom posiela a prijíma dáta pripojených klientov. Pripojení klienti volajú vzdialené RPC procedúry na strane servera, a podobne server môže volať vzdialené metódy klientov. SharedObject (zdieľaný objekt) môže byť použitý k synchronizácii zložitých dátových štruktúr a volať vzdialené metódy na viacerých klientov naraz. Týmto sa klienti zúčastnia zmeny zdieľaného objektu. Objekty ActionScriptu sú prenášané cez NetConnection spojenie použitím AMF správ (Action Message Format). NetConnection spojenie je ovládané transparentne serverom a Flash klientom. Server tiež umožňuje užívateľom prijímať a vytvárať NetStream dátové toky. Užívateľ požiada o vytvorenie toku na prezeranie vzdialene uloženého multimediálneho súboru. Dátový tok môže vytvoriť aj server, a poskytnúť tak cez neho video. Takto strana 27
vytvorené spojenie spôsobí, že každý klient bude vo videu vždy na to istom mieste, pretože všetci sledujú ten istý tok dát. FMS je možné prepojiť s viacerými externými službami vrátane J2EE serverov, web services, XML Socketov, a ASP.NET aplikačným serverom. Toto prepojenie dáva FMS aplikáciám výhody pre spoluprácu s databázovými a emailovými servermi. 6 Edge-Origin architektúra Pri použití stratégie edge-origin, sú všetky požiadavky na spracovanie z klientskych aplikácií pre služby FMS servera presmerované na okrajový (edge) server. Edge server prijme požiadavku, ale aplikáciu priamo neobslúži. Edge server vytvorí spojenie s ďalším serverom, nazývaným tiež zdrojovým (origin), na ktorom beží obslužná aplikácia. Keď origin server naplní požiadavku na službu FMS, pošle dáta aplikácie naspäť edge serveru, ktorý ich zasa nasmeruje klientovi. Užívateľovi sa pritom pripojenie stále javí ako spojenie s origin serverom. Úlohou edge servera je sprostredkovať spojenie medzi klientom a origin serverom. Edge servery autentifikujú užívateľa a autorizujú jeho požiadavku k službe. Namiesto presmerovania každej požiadavky na origin server, edge server zbiera požiadavky veľkého počtu klientov a zoskupuje ich do jedného spojenia s origin serverom, čím šetrí systémové prostriedky origin serverov. Cena plnej verzie Flash Media Servera 2 je ku 28. marcu 2007 4 500 dolárov, čo je v prepočte približne 113 000 Sk. K dispozícii na stránkach Adobe je tiež voľne dostupná vývojárska verzia, ktorej obmedzenie spočíva v limite maximálne 10 naraz pripojených klientov. Od jesene 2006 licenčné podmienky vývojárskej verzie dovoľujú jej použitie aj pre komerčné účely. Oficiálne podporované platformy sú Windows 2000 a 2003 server edície a Red Hat Enterprise Linux verzie 3.0 a 4.0. 7 6 http://en.wikipedia.org/wiki/flash_media_server 7 http://www.adobe.com/products/flashmediaserver/ strana 28
2.6.3 Red5 Red5 je open-source Flash Media Server naprogramovaný v jazyku Java, ktorý podporuje: Streaming audia/videa (FLV a MP3) Nahrávanie klientskych streamov (len vo formáte FLV) Zdieľané objekty (Shared objects) Publikovanie živého vysielania (Live Stream Publishing) Vzdialené ovládanie (Remoting) Red5 vznikol ako projekt iniciatívy OSFlash (Open Source Flash), ktorá zastrešuje vývojárov a ich projekty týkajúce sa Flash platformy. OSFlash vytvára a sústredí nástroje a zdroje pre open-source vývojárov, ktorí pôsobia mimo oficiálnych vývojárskych kruhov. 8 Produkty iniciatívy OSFlash sú publikované pod licenciami zaručujúcimi otvorený kód. Aktuálna verzia Red5 je 0.6 RC2 a bola vydaná 12. februára 2007. Oproti predchádzajúcej obsahuje podporu pre AMF3 (ActionScript Message Format verzie 3), RTMP klientsky mód pre pripojenie k ďalším Red5 serverom, limitovaný prístupu k streamom. Podporované platformy sú okrem Linuxu tiež Windows, Mac OS X a všetky, ktoré umožňujú beh Java aplikácií v prostredí Java Runtime Environment. 8 http://osflash.org/ strana 29
3 MPEG-7 MPEG-7 je ISO/IEC štandard vytvorený skupinou MPEG (Moving Picture Experts Group), tiež tvorcami štandardov ako MPEG-1, MPEG-2 a MPEG-4 MPEG-7, oficiálne tiež nazývaný Multimedia Content Description Interface, je štandard pre popis dát multimediálneho obsahu, ktoré podporujú určitý stupeň interpretácie zmyslu informácie, ktorá môže byť podaná alebo sprístupnená zariadeniu alebo počítačovému kódu. Elementy ktoré MPEG-7 štandardizuje podporujú tak široký rozsah aplikácie ako je len možné. 9 Príklad obsahu popisného MPEG-7 XML súboru: <?xml version="1.0" encoding="utf-8"?> <Mpeg7 xmlns="urn:mpeg:mpeg7:schema:2001" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xsi:schemalocation="urn:mpeg:mpeg7:schema:2001 Mpeg7-2001.xsd"> <Description xsi:type="contententitytype"> <MultimediaContent xsi:type="videotype"> <Video> <TemporalDecomposition> <VideoSegment> <TextAnnotation type="scene" relevance="1" confidence="1"> <FreeTextAnnotation>keyword</FreeTextAnnotation> </TextAnnotation> <MediaTime> <MediaTimePoint>T00:00:22:5514.48F23976.0246277</MediaTimePoint> <MediaIncrDuration mediatimeunit="pt1000n23976f">539</mediaincrduration> </MediaTime> <TemporalDecomposition> 9 http://www.chiariglione.org/mpeg/standards/mpeg-7/mpeg-7.htm strana 30
<VideoSegment> <MediaTime> <MediaTimePoint>T00:00:44:17310.672F23976</MediaTimePoint> </MediaTime> </VideoSegment> </TemporalDecomposition> </VideoSegment> </TemporalDecomposition> </Video> </MultimediaContent> </Description> </Mpeg7> 3.1 Názvy a význam elementov Použité elementy a ich názvy sú v obsiahnuté v nasledujúcej tabuľke. Elementy sú usporiadané od najvyššej úrovne (koreňový element) po najnižšiu úroveň. Názvy elementov boli určené štandardizovanou XSD schémou XML dokumentu. Niektoré elementy však majú názvy podľa deskriptora (D) alebo opisnej schémy (DS), tieto sú príslušne označené. Názov elementu Mpeg7 Popis koreňový element, obsahuje odkazy na menné priestory a XSD schému Description element obsahuje popis multimediálneho obsah AVM, atribút type určuje či sa jedná o video alebo o audio Video Audio element pre video, obsah popisuje len video stopu element pre audio, obsah popisuje len audio stopu strana 31
TemporalDecomposition VideoSegment -DS MediaTime -DS TextAnnotation MediaTimePoint -D MediaIncrDuration -D element určuje, že obsahom budú časovo rozsekané zábery špeciálny typ popisnej schémy, ktorý obsahuje časový popis časovo rozsekanej video alebo audio stopy na zábery, atribút id obsahuje poradové číslo záberu Popisná schéma, ktorá obsahuje časy začiatku záberu a trvanie element s obsahom textovej poznámky, atribút confidence určuje s akou pravdepodobnosťou sa v zábere vyskytuje vlastnosť záberu, ktorá je vyjadrená textom v obsahu tohto elementu tento deskriptor určuje čas začiatku záberu, hodnota je vo formáte normy ISO 8601: YYYY-MM-DDThh:mm:ss:nnn.ff±hh:mmFNNN Pričom YYYY-MM-DD je dátum podľa Gregoriánskeho kalendára, T označuje začiatok časového údaju v tvare hodiny hh, minúty mm, sekundy ss, na značku nnn.ff sa nepíšu desatiny sekundy, ale počet rámcov prenesených za tento zlomok sekundy, potom nasleduje údaj, v akom časovom pásme sa nachádzame, značka F určuje, že za ňou je už len údaj, koľko rámcov je prenesených za sekundu. Takéto zložité vyjadrenie času sa nepoužíva, ja používam zjednodušenú formu a to Thh:mm:ss:nnn.ffFNNN. tento deskriptor určuje dĺžku trvania záberu, strana 32
pričom údaj musí byť celé číslo a to buď čas alebo počet rámcov, ja používam vyjadrenie v rámcoch, atribútom tohto elementu je mediatimeunit, jeho hodnota má tvar PT1N25F, pričom je to len vyjadrenie, že za 1 sekundu 1N máme 25 rámcov 25F KeywordAnnotation Keyword element, ktorého obsahom je kľúčové slovo element kľúčové slovo, ktorého obsahom je priamo pomenovanie vlastnosti hľadanej v zábere Aj keď elementy TextAnnotation, KeywordAnnotation a Keyword nie sú priamo deskriptory ani popisné schémy, sú vyjadrené v XSD schéme pre štandard MPEG-7. Takéto elementy je po dohode s používateľmi možné považovať za deskriptory, ktorých obsah má len charakter popisu AV materiálu. strana 33
4 Praktická časť: Požiadavky a návrh Definovanie požiadaviek Cieľom praktickej časti je vytvorenie tzv. webovej aplikácie, ktorá bude schopná vytvárať a obsluhovať databázu anotačných záznamov multimediálnych súborov. Aplikácia musí byť vytvorená za pomoci technológie Flash a umožňovať nahranie video súboru na server, pridanie kľúčových slov a následné vytváranie, editovanie a mazanie časových intervalov priradených jednotlivým kľúčovým slovám. Aplikácia musí ďalej užívateľovi umožniť export vytvorených do MPEG-7 XML formátu. Špecifikácia požiadaviek pre aplikáciu: 1. Flashová aplikácia nezávislá na platforme schopná pracovať v tzv. webovom prostredí, teda v okne prehliadača webových stránok. 2. Musí vedieť pracovať s multimediálnym súborom vo formáte Flash Videa (FLV). 3. Aplikácia musí byť schopná exportovať anotačný záznam vo formáte štandardu MPEG-7 XML pre použitie v iných anotačných nástrojoch. 4. Musí byť umožnený import MPEG-7 XML sekvencií vytvorených aplikáciou TrecVid, pričom ide o základné rozdelenie časovej osi do úsekov. Rozšírenie základných požiadaviek: 1. Aplikovať dostupné open-source nástroje pre konverziu videa na strane servera tak, aby bola aplikácia schopná pracovať podľa možností s viacerými najpoužívanejšími formátmi videa. 2. Umožniť užívateľovi voľbu medzi spôsobom doručenia multimédia aplikácii. Na strane obsluhujúceho servera implementovať streamovací server. strana 34
Návrh riešenia Už z vyššie načrtnutého pohľadu na prostredie Flashu vyplýva, že už prvá požiadavka, a to nezávislosť na platforme bude veľmi ľahko naplnená. Flash je na platforme nezávislý do tej miery, pokiaľ je pre operačný systém k dispozícii virtuálny stroj Flash Player. Ďalšou, na platforme závislou súčasťou komplexného riešenia, bolo prostredie servera. Najlepšou voľbou sa javilo použiť Linuxovú distribúciu Ubuntu v spolupráci so skriptovacím jazykom PHP bežiacim nad http serverom Apache prepájajúcim databázový server MySQL s klientskou stranou Flashovej aplikácie. Kombinácia Linux, Apache, MySQL a PHP je najvhodnejšia hlavne preto, že sa jedná o najpoužívanejšie riešenia pre danú problematiku a z toho vyplýva aj kvalitná dostupnosť potrebnej dokumentácie a veľkosť komunity združenej okolo. Zvolená bola anglická mutácia aplikácie, hlavne z dôvodu snahy o voľné sprístupnenie zdrojových kódov a aplikácie na stiahnutie pre edukačné účely z webovej adrese http://www.flajjer.info strana 35
5 Praktická časť: Realizácia 5.1 Server Pri realizácii aplikácie klient/server nie je možné sa zaobísť bez stabilného a bezpečného operačného systému. Pre tieto potreby bola po kratšej úvahe zvolená linuxová distribúcia Ubuntu 6.06.1 Server (v čase realizácie najaktuálnejšia). Do užšieho výberu sa tiež dostala distribúcia Debianu, hlavne pre svoje výborné vlastnosti pri nasadení na produkčné servery. Čo sa týka dynamiky vývoja, Ubuntu je omnoho živší. Je postavený na Debiane a významnú rolu pri riešení prípadných problémov predstavuje čoraz väčšia komunita združujúca sa okolo Ubuntu. 5.1.1 LAMP Ďalšími nevyhnutnosťami bola konfigurácia HTTP servera, slúžiaceho pre doručenie obsahu klientovi, dynamický skriptovací jazyk na strane servera pre riadenie serverside operácií a prácu s databázou, samotné úložisko dát, ktoré vznikli pri anotácii a databázový server. Pre naše potreby výborne poslúži veľmi populárna kombinácia, často označovaná skratkou LAMP (Linux, Apache, MySQL a PHP). Inštalácia prebehla spolu s operačným systémom bez akýchkoľvek problémov. Pre potreby simulácie pri vývoji a testovaní v sieťovom prostredí klient/server som použil virtualizačný nástroj VMware. Tento nástroj mi na jednom PC umožnil vytvorenie ďalšieho virtuálneho systému a zároveň kontrolovať a obmedzovať prostriedky využívané týmto virtuálnym PC. strana 36
5.1.2 Databázový model Model databázy tvoria tri tabuľky. Prvá s názvom files obsahuje dve polia, id pre jednoznačné identifikovanie súboru a filename pre uchovanie názvu súboru vo filesystéme. Tabuľka files Pole id filename Typ int(11) varchar(255) Druhá tabuľka s názvom keywords uchováva všetky kľúčové slová, z ktorých každé je priradené k nejakému video súboru. Obsahuje polia id pre jednoznačné identifikovanie slova, file_id pre priradenie slova k identifikátoru súboru a nakoniec word obsahujúce konkrétne slovo. Tabuľka keywords Pole id file_id word Typ int(11) int(11) varchar(255) Tretia tabuľka s názvom positions uchováva pozície vzniknuté anotačným procesom a je previazaná s tabuľkami files a keywords. Obsahuje polia id pre jednoznačnú identifikáciu pozície v databáze, file_id pre priradenie pozície k video súboru, keyword_id pre priradenie pozície ku kľúčovému slovu, pole start uchovávajúce časovú značku začiatku intervalu a pole duration nesúce informáciu o dĺžke trvania intervalu. strana 37
Tabuľka positions Pole id file_id keyword_id start duration Typ int(11) int(11) int(11) float float Prekódovanie videa na strane servera Pre potreby konverzie video formátov za jazdy na strane servera sa ako najvhodnejší javil balík knižníc a aplikácií FFmpeg. Samotný balík zdrojových kódov bol stiahnutý z domovskej stránky projektu http://ffmpeg.mplayerhq.hu. Pre správnu konverziu audia do MP3 formátu bolo ešte pred samotnou kompiláciou FFmpegu potrebné nainštalovať balík LAME (zdrojové kódy na http://lame.sourceforge.net) a pri konfigurácii FFmpegu použiť prepínač enable-mp3lame. Samotná kompilácia LAME sa spúšťa príkazmi: $./configure --enable-shared --prefix=/usr $ make $ make install Z adresára /usr/local/lib je potom potrebné do adresára /usr/lib prekopírovať simlink libmp3lame.so.0 Kompilácia FFmpeg sa spúšťa príkazmi: $./configure --enable-gpl --enable-mp3lame --enable-shared --prefix=/usr $ make clean && make $ make install strana 38
Ku spracovaniu video súborov skriptovacím jazykom PHP bude ešte potrebné doplniť PHP rozšírením pre FFmpeg. Toto rozšírenie nám vytvorí FFmpeg API pre PHP. Je možné ho nájsť na stránkach http://ffmpeg-php.sourceforge.net/. Pred inštaláciou rozšírenia je potrebné doinštalovať balík php5-dev príkazom: $ apt-get install php5-dev Kompilácia FFmpeg extension pre PHP: $ phpize $./configure && make $ make install Vo všetkých uvedených prípadoch treba príkazy spúšťať z adresára, v ktorom boli rozbalené zdrojové kódy. 5.1.3 Streaming videa Inštalácia open-source streamovacieho servera RED5 prebehla bezproblémovo. Aktuálnu verziu je možné stiahnuť z http://osflash.org/red5. V čase písania tejto práce bola aktuálna RED5 v0.5 a bol použitý už skompilovaný.deb balík určený pre inštalácie na linuxovú distribúciu Debian. RED5 je aplikácia napísaná v jazyku Java, takže k spusteniu je potrebný ešte Java Runtime Environment pre Linux. Samorozbaľovací balík je možné stiahnuť z http://www.java.com/en/download/manual.jsp, pričom bol použitý Linux (selfextracting file). K ovládaniu streamovaných dát je potrebné navrhnúť a naprogramovať riedenie serverovej časti RED5. K tomuto účelu úplne postačuje skript oflademo, ktorý je dodávaný spolu s inštaláciou RED5 ako ukážková demo aplikácia. strana 39
Po nainštalovaní RED5 servera je potrebné v spúšťacom skripte /usr/lib/red5/red5.sh pridať cestu k adresáru, v ktorom je nainštalované prostredie Java Runtime Environment. RED5 spúšťame príkazom: $ /etc/init.d/red5 start 5.1.4 Komunikácia klient-server (AMF) Flash Player využíva pre komunikáciu medzi klientom a serverom AMF správy. Aplikácií a toolkitov pre spracovanie týchto správ na strane servera je niekoľko. Flash Remoting MX je serverový produkt od Adobe, ktorý poskytuje prepojenie medzi Flash Playerom a ColdFusion MX, Microsoft.NET, Javou a aplikáciami záložnými na SOAP správach (Simple Object Access Protocol, protokol pre výmenu správ vo formáte XML). Cena tohto produktu sa pohybuje okolo tisíc dolárov. Ďalšou možnosťou bolo použiť AMFPHP. Je to balík skriptov, ktorý využíva rozšírenie a knižnice Flash Remoting na strane Flash Playera, ale na strane servera knižnice a gateway v jazyku PHP. Nakoniec bola pre svoju jednoduchosť zvolená alternatíva k AMFPHP, PHPObject. V oboch posledných prípadoch sa jedná o open-source produkty. 5.1.5 PHPObject Po stiahnutí a rozbalení balíka PHPObject zo stránky http://www.ghostwire.com/go/33, je potrebné nainštalovať komponent PHPObject pre Flash Professional ActionScript 2. Komponent sa nachádza v súbore PHPObject_AS2.mxp, po spustení ktorého sa otvorí Macromedia Extension Manager. Ide o rozhranie pre správu rozšírení produktov Macromedie. Všetky skripty potrebné k správnemu fungovaniu PHPObject sa nachádzajú v adresári server a je potrebné ich skopírovať do koreňového adresára aplikácie. strana 40
V súbore config.php je potrebné nastaviť cestu k adresáru obsahujúcemu riadiace triedy v PHP a usekey kľúč pre jednoduchú autorizáciu požiadaviek. Riadiaca trieda v skripte pre pridanie kľúčového slova do databázy môže vyzerať takto: classes/addkeyword.php <?php include('settings_database.php'); class addkeyword { function getresult($input) { $input->querykeyword = trim($input->querykeyword); if ($input->querykeyword == '') { return; } $sql = 'INSERT INTO `keywords` (`id`, `file_id`, `word`) VALUES (NULL, \''.$input->querytarget.'\', \''.$input->querykeyword.'\');'; mysql_query($sql); $this->result = $sql; } }?> a volanie tohto skriptu z Flash Playera pomocou Actionscriptu môže vyzerať takto: functions.as function addkeyword() { // Do nothing when there's an empty text in tag if (_root.application.handle.mytagfield.text == "") { return; } _root.application.myaddbutton.label = "...wait"; _root.application.myaddbutton.enabled = false; import com.ghostwire.phpobject.* PHPObject.defaultGatewayKey = "secret"; PHPObject.defaultGatewayUrl = _global.gatewayurl; // Path to PHPObject Gateway.php mysenddata = new PHPObject("addKeyword"); // Calling for addkeyword class included in classes/addkeyword.php script mysenddata.getresult_onresult = function() { if(this.result) { strana 41
} } else { } _root.application.handle.mytagfield.text = ""; _root.application.refreshkeywords(); //ERROR happened during request var arrayfordb:object = {QueryID: "", QueryTarget:_global.VideoID, QueryKeyword:_root.application.handle.myTagField.text}; // Building associated array for method mysenddata.getresult(arrayfordb); // Calling getresult method included in addkeyword class } Názvy súborov obsahujúcich triedy a metódy pre PHPObject musia byť v tvare nazovtriedy.php, pričom tento súbor môže obsahovať len jednu triedu a tú s názvom v tvare nazovtriedy a ľubovoľný počet metód v tvare nazovmetody. Volanie týchto metód ActionScriptom bude potom vyzerať takto: import com.ghostwire.phpobject.* PHPObject.defaultGatewayKey = "secret"; PHPObject.defaultGatewayUrl = "cesta/ku/gateway.php"; nazovobjektu = new PHPObject("nazovTriedy"); nazovobjektu.nazovmetody_onresult = function(this.nazovvracanejpremennej) { } // Spracovanie prijatých dát nazovobjektu.nazovmetody(premennapremetodu); Premenné sú volaným metódam ActionScriptom posúvané ako bežné typy ActionScriptu (string, boolean, object, array...) pričom sa PHPObject postará o to, aby boli PHP metódam doručené ako bežné premenné v PHP (tiež string, boolean, object, array...). A naopak, ak napríklad metóda v PHP vracia premennú typu String, v ActionScripte sa s ňou po prijatí pracuje tiež ako so Stringom. strana 42
5.2 Aplikácia Adresár classes obsahuje všetky triedy obsluhujúce požiadavky cez PHPObject. Názvy súborov napovedajú o funkcii triedy. Adresár encode_queue slúži ako dočasné úložisko pre súbory, kódované FFmpegom na FLV formát. Adresár layout_img obsahuje všetky obrázky použité v aplikácii. Po skompilovaní sú tieto súbory nepotrebné, pretože sa stávajú súčasťou SWF súboru aplikácie. Adresár scripts obsahuje súbory pre generovanie a spracovanie MPEG-7 XML súborov a pre spracovanie videa nahrávaného na server. Nastavenia aplikácie sú uložené v súboroch s prefixom settings_. Na súbor settings_database.php je potrebné vytvoriť symbolické linky alebo ho duplikovať aj do adresárov classes a scripts. OBR. 1, VÝVOJOVÉ PROSTREDIE FLASH PROFESSIONAL 8 strana 43
Časť funkcií aplikácie je deklarovaná v externom súbore ActionScriptu functions.as, ďalšie funkcie priamo v zdrojovom kóde flajjer.fla. Funkcionalita tried a skriptov, ako aj funkcií aplikácie obsiahnutých v zdrojovom kóde aplikácie, je v kóde popísaná komentármi, preto ďalej nepovažujem za potrebné popisovať jednotlivé funkcie. 5.3 Publikovanie obsahu Výsledok kompilácie, SWF súbor, je možné publikovať ako html objekt. Do súboru index.html, ktorý je z koreňového adresára http servera spúšťaný ako prvý, je vložený nasledovný object html tag: <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"width="955" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"> <param name="movie" value="flajjer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#e5f2f7" /> <embed src="app.swf" quality="high" bgcolor="#e5f2f7" width="955" height="600" name="flajjer" align="middle" play="true" loop="false" quality="high" allowscriptaccess="samedomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed> </object> Tag object tiež zabezpečí automatickú inštaláciu Flash Playera v prípade, že ho ešte užívateľ nemá nainštalovaný. strana 44
6 Praktická časť : Užívateľský manuál 6.1 Odporúčané a minimálne systémové prostriedky Testovanie a vývoj aplikácie prebiehal na hardvérovej konfigurácii procesora 1,5 GHz, 1GB RAM a diskový priestor minimálne 5 GB. Táto konfigurácia môže byť nazvaná odporúčanou, ako pre klientsku, tak pre serverovú časť, nakoľko boli tieto systémové prostriedky využívané súčasne pre virtuálne prostredie servera, vývojové prostredie a testovanie aplikácie vo webovom prehliadači. Minimálne požiadavky klient: Hardware: Procesor 200 MHz, 64MB RAM, 10MB HDD Software: Operačný systém a webový prehliadač s podporou Flash Player 8 a vyššie Minimálne požiadavky server: Hardware: Software: Procesor 1 GHz, 300MB RAM, 4GB HDD (závislé od množstva multimediálnych súborov) Operačný systém s podporou Java Runtime Environment, RED5 streamovací server, HTTP server s podporou PHP, MySQL v 4.1, FFmpeg, FFmpeg rozšírenie pre PHP Minimálna šírka pásma prepojenie servera a klienta je závislá od kvality požadovaného video súboru. Pri použití metódy progresívneho sťahovania pre aplikáciu nie je vysoká rýchlosť pripojenia tak rozhodujúca ako pri použití streamu. Aj napriek tomu odporúčam minimálne pripojenie rýchlosťou 512kbit/s. strana 45
Pri progresívnom sťahovaní sú dáta celého súboru ku klientovi stiahnuté počnúc požiadavkou na súbor, ale pri streamovaní je využívaný klientsky buffer a dáta sú sťahované po segmentoch, aby bol tento buffer vždy plný. Systémové prostriedky nevyhnutné k plynulému behu servera sú vo veľkej miere závislé od množstva súborov v databáze, množstva naraz pripojených a obsluhovaných klientov, kvality ponúkaných video súborov a v neposlednom rade od optimalizácie použitého operačného systému. 6.2 Vstupné a výstupné formáty a kódovanie Vstupné formáty a kódovanie video a audio súborov pri nahrávaní na server sú limitované možnosťami a podporou konverzie FFmpegom do formátu vhodného pre Flash Player. Nižšie uvedené tabuľky znázornia podporu najpoužívanejších formátov a kodekov: Formát súboru Kódovanie Dekódovanie MPEG audio x x MPEG-1 systems x x MPEG-2 PS x x MPEG-2 TS x ASF x x AVI x x WAV x x Real Audio and Video x x FLV x x QuickTime x x strana 46
Video kodek Kódovanie Dekódovanie MPEG-1 video x x MPEG-2 video x x MPEG-4 x x WMV7 x x H.264 x H.263(+) x x Sorenson Video 1 x x On2 VP6 x Audio kodek Kódovanie Dekódovanie MPEG audio layer 2 x x MPEG audio layer 1/3 x x AC3 x x Vorbis x x WMA V1/V2 x x FLAC lossless audio x x AAC x x Pri testovaní aplikácie som narazil na problém konverzie formátu MPEG do formátu FLV pri použití vzorkovacej frekvencie MPEG audia 32000 Hz. Požadované vzorkovacie frekvencie boli 11025, 22050 alebo 44100 Hz. FLV formát videa podporuje len uvedené vzorkovacie frekvencie mp3 audia. Tatiež sa po konverzii na FLV v niektorých MPEG videách nebolo možné pohybovať na ľubovoľnú pozíciu. FLV dáta stratili informáciu o čase, takže tým bolo aplikácii znemožnené vykonávať akékoľvek anotačné funkcie. Ideálne je, ak je pri nahrávaní videa na server aplikácii toto video poskytnuté už vo formáte FLV. FFmpeg je tak z celého procesu nahrávania vynechaný. Týmto by som chcel dať do pozornosti nasledujúce nástroje pre prácu s videom: Gspot desktopová aplikácia, bežiaca na platforme Windows, umožňujúca strana 47
Super VLC Player zistiť podrobné informácie o kódovaní videosúboru. Stiahnuť ju je možné z http://www.headbands.com/gspot/ desktopová aplikácia, alebo tzv. GUI rozhranie FFmpegu pre platformu Windows, umožňujúca konverziu video a audio súborov medzi množstvom formátov, vrátane FLV. Nájdete tiež na http://www.erightsoft.com/super.html open-source prehrávač multimediálnych súborov pre platformu Windows, Linux a Mac OS X. Využívajúca knižnice FFmpegu prehráva aj FLV formát. Stiahnuť ho je možné z domovskej stránky http://www.videolan.org/ Keďže je odstraňovanie chýb pri neúspešnej konverzii na strane servera pomerne ťažké (nemožnosť odchytiť textový výstup FFmpegu a tým informovať užívateľa o úspešnosti), použitím vyššie uvedených nástrojov pre konverziu pred nahratím na server je možné vytvoriť FLV formát oveľa komfortnejšie. 6.3 Rozdelenie a popis častí užívateľského rozhrania Užívateľské prostredie je možné rozdeliť na tri časti. Časť videa, časť anotačných funkcií a časť záložiek. Časť videa Časť videa je jednoduché okno s informačným panelom pre zobrazenie celkového času a času aktuálnej pozície, základnými funkciami pre zväčšenie/zmenšenie videa z a do pôvodnej veľkosti a ovládaním hlasitosti audia prehrávaného súboru. strana 48
OBR. 2, ČASŤ VIDEA Časť anotačných funkcií Časť anotačných funkcií obsahuje všetky potrebné funkcie pre vytváranie a editovanie anotačných záznamov pre zvolený multimediálny súbor a niektoré riadiace a informačné prvky. Zhora nadol je to časová os, ktorá umožňuje posun v čase obyčajným kliknutím na hornú sivú polovicu. Spodná časť časovej osi slúži k manipulácii s označeným intervalom. Po zvolení intervalu sa tento zafarbí do tmavšej farby (resp. stratí časť svojej predchádzajúcej priesvitnosti) a nad časovou osou sa vykreslí okno pre manipuláciu, t. j. kopírovanie alebo presun intervalu do iného kľúčového slova. Pod časovou osou sa zľava nachádza jednoduché riadenie prehrávania súboru (Play/Pause), tlačidlá pre označenie začiatočnej, koncovej pozície intervalu, priradenie strana 49
novo označeného intervalu zvolenému kľúčovému slovu a zmazanie označeného intervalu. Na pravej strane sú funkcie pre import/export MPEG-7 XML súboru a funkcia pre nahratie multimediálneho súboru na server. Obe tieto tlačidlá vyvolajú zmenu časti anotačných funkcií na nimi definované dialógové okná. OBR. 3, ČASŤ ANOTÁCIE Ďalej sú v tejto časti umiestnené formulárové polia pre pridanie nového kľúčového slova a listbox už pridaných kľúčových slov. Pri zmene listboxu a výbere iného kľúčového slova sa automaticky prekreslí časová os, aby boli vykreslené intervaly priradené zvolenému kľúčovému slovu. Poslednou súčasťou časti anotačných funkcií je plocha pre zobrazenie dostupných informácií o prehrávanom súbore, ako napríklad počet rámcov za sekundu, veľkosť dátového toku pre video a audio, veľkosť okna atď. strana 50
Časť záložiek Časť záložiek je poslednou časťou a je určená hlavne pre ďalšie rozširujúce funkcie aplikácie, ktoré môžu poprípade pribudnúť v budúcnosti. Momentálne sa v tejto časti nachádzajú záložky pre vyhľadávanie v databáze a zmenu nastavenia aplikácie. OBR. 3, ČASŤ ZÁLOŽIEK (VYHĽADÁVANIE) strana 51
Záložka pre vyhľadávanie obsahuje formulárové prvky ako textové pole pre hľadaný výraz, zaškrtávacie polia pre vyhľadávanie v súboroch alebo vyhľadávanie v kľúčových slovách, tlačidlo pre spustenie vyhľadávania a pole výsledkov vyhľadávania. Kliknutím a teda výberom z poľa výsledkov užívateľ iniciuje spustenie vybraného súboru prípadne aj označenia kľúčového slova. Záložka pre zmenu nastavení obsahuje formulárové prvky pre zmenu typu doručenia videa z postupného sťahovania na použitie streamovacieho servera. Ďalej obsahuje textové polia pre napríklad nastavenie cesty k úložisku dát (ak sa nachádza na inom serveri) atď. V spodnej časti je možné nájsť textovú linku NEED HELP?, ktorá spustí jednoduchého video sprievodcu, ukazujúceho spôsob práce s aplikáciou. Počas prehrávania sprievodcu je s aplikáciou možné normálne pracovať a tak si vyskúšať navigáciu prezentovanú sprievodcom. Opätovným kliknutím na text NEED HELP? sa sprievodca zatvorí a užívateľ môže pokračovať v práci s aplikáciou. 6.4 Klávesové skratky Ovládať aplikáciu je takisto možné použitím klávesových skratiek. Kláves Medzerník f Funkcia Pozastaví a spúšťa video (Play/Pause) Prepína režim veľkosti videa [ Začiatok označenia intervalu ] Ukončí označenie intervalu a d Priradí označený interval kľúčovému slovu Zmaže označený interval Klávesové skratky sú štandardne deaktivované. strana 52
7 Záver Cieľ tejto práce, vytvorenie anotačného nástroja, schopného pracovať v prostredí webu a zároveň rýchlosťou a stabilitou konkurovať desktopovej aplikácii, bol naplnený. Teoretická časť sa venuje rozboru technológie Flash a jej možnostiam pri práci s multimédiami v prostredí internetu. V praktickej časti som vytvoril nástroj, ktorý umožňuje anotovať video a vytvárať metadáta kompatibilné so štandardom MPEG-7 XML. Ide o aplikáciu klient server, realizovanú na platforme Flash. Zdrojové kódy a obraz servera použiteľný vo virtualizačnom nástroji VMware Player sa nachádzajú v elektronickej prílohe. Aplikácia funguje na všetkých operačných systémoch podporujúcich beh interpretujúceho Flash Playera ako doplnku webového prehliadača. Serverovú časť, ako obraz operačného systému je možné spustiť na akomkoľvek hostiteľskom systéme, ktorý je podporovaný aplikáciou VMware Player. Názov Projekt bol nazvaný Flajjer, čo je fonetické spojenie slov Flash a player, aby si tak mohol vytvoriť svoju identitu a prípadne neskôr slúžiť ako štart pre podobne zamerané aplikácie. Aplikácia je tiež dostupná on-line na http://www.flajjer.info. Užívateľské rozhranie Aplikácia úmyselne neponúka dostatočný priestor pre komplexnosť a neumožňuje tak užívateľovi vybrať si akým spôsobom s ňou bude pracovať. Schéma troch krokov (1. nahranie/zvolenie si videa, 2. pridanie/zvolenie si kľúčových slov, 3. manipulácia s intervalmi) tak núti užívateľa držať sa dopredu určeného postupu. Podľa mojich strana 53
doterajších vedomostí si vybudovanie úspešného produktu vyžaduje nie komplexné riešenie aplikácie, ale unikátny prístup k riešeniu problematiky užívateľa. Čo mi práca na projekte priniesla? Počas niekoľkých mesiacov práce na projekte som si rozšíril obzor vedomostí v oblasti programovania, konfigurácie linuxového servera, ale hlavne v možnostiach aplikovania technológie Flash pri riešení rôznych praktických úloh v prostredí internetu. Tiež mi umožnila prakticky si vyskúšať návrh užívateľského rozhrania, ktoré bolo neskôr podrobené jednoduchému užívateľskému testu. Čo môže tento projekt priniesť ostatným? Záujemcom o Flash môže táto diplomová práca objasniť niektoré postupy pri vytváraní aplikácie vo Flashi a tiež spôsoby prepojenia s ďalšími technológiami ako napríklad MySQL databázou alebo PHP skriptovacím jazykom. Pri úvahe o budúcom smerovaní projektu je napríklad možné aplikáciu spojiť s už existujúcimi službami typu YouTube.com alebo Google Video. Cez verejné API týchto služieb je teoreticky možné anotovať obsah priamo umiestnený na ich serveroch. Na záver Súčasné smerovanie spoločnosti Adobe a platformy Flash dokazuje, že práve práca s multimédiami a priblíženie sa k použiteľnosti z hľadiska zjednotenia formulárových prvkov, budú pre platformu v nasledujúcom období v úspechu najrozhodujúcejšími. Nosnými aplikáciami pre publikovanie obsahu budú v budúcnosti popri Flash Professional tiež produkty ako Adobe Flex, primárne určené k vývoju Flash aplikácií, spolu s ActionScriptom 3 a taktiež Flash Lite určený k publikovaniu pre mobilné zariadenia. strana 54
Konkrétne praktické využitie diplomovej práce ukáže až čas. Nech čitateľ sám posúdi, či je Flash schopný vyplniť priestor a uspieť v súboji množstva inovatívnych technológií ponúkajúcich manipuláciu s multimédiami na internete. strana 55
8 Použitá literatúra Kapitola 2, 2.1: Flash [1] http://en.wikipedia.org/wiki/macromedia_flash Kapitola 2.2 ActionScript [2] http://en.wikipedia.org/wiki/actionscript Kapitola 2.3 Flash pre & proti [3] http://www.olate.co.uk/articles/205 [4] http://grafika.sk/clanok/flash-vyhody-vs-nevyhody/ Kapitola 2.4 Flash Video [5] http://en.wikipedia.org/wiki/flv [6] http://en.wikipedia.org/wiki/sorenson_codec [7] http://en.wikipedia.org/wiki/vp6 [8] http://www.mediacollege.com/flash/video/pros-cons.html Kapitola 2.5 Audio formát a kodeky [9] http://en.wikipedia.org/wiki/mp3 [10] http://en.wikipedia.org/wiki/nellymoser [11] http://www.nellymoser.com/ [12] http://en.wikipedia.org/wiki/pulse-code_modulation Kapitola 2.6 Progresívny download vs. Stream [13] http://www.adobe.com/devnet/flash/articles/migrate_flashmx2004_04.html Kapitola 2.6.2 Flash Media Server [14] http://download.macromedia.com/pub/documentation/en/flashmedia server/2/flashmediaserver_edge.pdf Kapitola 3 MPEG-7 [15] Dzurek, M.: Aplikácia XML a MPEG7 pri analýze audia a videa. Diplomová práca, Katedra telekomunikácií, Elektrotechnická fakulta, ŽU v Žiline, 2005 strana 56
9 Čestné vyhlásenie Vyhlasujem, že som zadanú diplomovú prácu vypracoval samostatne, pod odborným vedením vedúceho diplomovej práce Ing. Romana Jarinu, PhD. a používal som len literatúru uvedenú v práci. Súhlasím so zapožičiavaním diplomovej práce. V Žiline, dňa 18. mája 2007..... strana 57
10 Poďakovanie Na tomto mieste by som sa rád poďakoval svojim rodičom, ktorí ma trpezlivo podporovali v štúdiu. Rád by som tiež poďakoval vedúcemu diplomovej práce Ing. Romanovi Jarinovi za jeho návrhy, pripomienky a rady, ktoré mi dopomohli k úspešnému dokončeniu práce. Vďaka tiež patrí všetkým mojim spolužiakom a priateľom. Štefan Bačkor strana 58