Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
strana 7
Ú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 8
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 9
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 10
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 11
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 12
• 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 13
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 14
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 15
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 16
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 17
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 18
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 19
• 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 20
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 21
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 22
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 23
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 24
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 25
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 X
Rýchly štart X
Dlhé klipy X
Rýchly náhodný prístup k rôznym častiam videa X
Špeciálny server X
strana 26
Trvalá vysoká kvalita pri rôznych rýchlostiach pripojenia X
Obsah je stiahnutý ku klientovi X
Obsah ostáva na serveri (nemôže byť uložený klientom) X
2.6.2 Flash Media Server
Flash Media Server (v minulosti nazývaný Flash Communication Server) je „enterprise-
grade“ 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 27
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 28
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 29
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 30
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:
keyword
T00:00:22:5514.48F23976.0246277
539
9 http://www.chiariglione.org/mpeg/standards/mpeg-7/mpeg-7.htm
strana 31
T00:00:44:17310.672F23976
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 Popis
Mpeg7 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 element pre video, obsah popisuje len video
stopu
Audio element pre audio, obsah popisuje len audio
stopu
strana 32
TemporalDecomposition element určuje, že obsahom budú časovo
rozsekané zábery
VideoSegment -DS š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
MediaTime -DS Popisná schéma, ktorá obsahuje časy začiatku
záberu a trvanie
TextAnnotation 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
MediaTimePoint -D 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.
MediaIncrDuration -D tento deskriptor určuje dĺžku trvania záberu,
strana 33
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 element, ktorého obsahom je kľúčové slovo
Keyword 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 34
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 35
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 36
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 server-
side 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 37
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“
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 Typ
id int(11)
file_id int(11)
word 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.
Pole Typ
id int(11)
filename varchar(255)
strana 38
Tabuľka „positions“
Pole Typ
id int(11)
file_id int(11)
keyword_id int(11)
start float
duration 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 39
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 (self-
extracting 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 40
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 41
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
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 42
_root.application.handle.myTagField.text = "";
_root.application.refreshKeywords();
}
else {
//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 43
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 44
Č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:
Tag object tiež zabezpečí automatickú inštaláciu Flash Playera v prípade, že ho ešte
užívateľ nemá nainštalovaný.
strana 45
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: Procesor 1 GHz, 300MB RAM, 4GB HDD (závislé od množstva multimediálnych súborov)
Software: 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 46
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 47
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
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
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
strana 48
zistiť podrobné informácie o kódovaní videosúboru. Stiahnuť ju je možné z http://www.headbands.com/gspot/
Super 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
VLC Player 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 49
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 50
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 51
Č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 52
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 Funkcia
Medzerník Pozastaví a spúšťa video (Play/Pause)
f Prepína režim veľkosti videa
[ Začiatok označenia intervalu
] Ukončí označenie intervalu
a Priradí označený interval kľúčovému slovu
d Zmaže označený interval
Klávesové skratky sú štandardne deaktivované.
strana 53
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 54
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 55
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 56
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 57
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 58
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