58
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

Diplomová prácadiplom.utc.sk/wan/1263.pdf · 2007. 9. 6. · programovanie založené na Prototypoch podľa štandardu ECMAScript a umožňoval plne procedurálne a objektovo orientované

  • 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