JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Streaming pomocí technologií FLASH Bakalářská práce Vedoucí práce : Mgr. Miloš Prokýšek Autor práce: Jiří Zezula České Budějovice 2010
Prohlášení Prohlašuji, že svoji bakalářskou práci jsem vypracoval samostatně pouze s použitím pramenů a literatury uvedených v seznamu citované literatury. Prohlašuji, že v souladu s 47b zákona č. 111/1998 Sb. v platném znění souhlasím se zveřejněním své bakalářské práce, a to v nezkrácené podobě elektronickou cestou ve veřejně přístupné části databáze STAG provozované Jihočeskou univerzitou v Českých Budějovicích na jejích internetových stránkách. V Českých Budějovicích, 10. dubna 2010 Jiří Zezula 2
Abstrakt Práce se zabývá v teoretické části pojednáním o flashovém streamingu ve všech jeho formách. Její hlavní součástí je porovnání a vymezení vlastností flashových streamingových serverů a to v komereční a open source podobě. Prostor bude věnován také kodekům, jenž servery využívají. V praktické části bude cílem tvorba software jenž bude flashový streaming využívat a na nemž bude možno praktikovat poznatky z teoretické části. Abstract The document is in the theoretical part about flash streaming in all its forms. Its main component is the comparison and define the characteristics of flash streaming servers in a comeretional and opensource form. Space will also be devoted to codecs that servers use. In the practical part will be the goal of creating software that will use the Flash streaming and on which it is possible to practice the knowledge of the theoretical part. 3
Poděkování Děkuji všem, kteří mě podpořili v mé činnosti. Obzvláště pak panu Mgr. Miloši Prokýškovi za odborné vedení páce a dále panu PhDr. Milanu Novákovi, Ph.D..za poskytnutí videokonferenčního software ke studiu a vývoji. Dále pak mým kolegům za rady ohledně metodik a formátování práce. 4
Obsah 1. Úvod, 11 2. Úvod do flashového streamování, 10 2.1 Co je streamování, 12 2.2 Princip flashového streamování, 12 2.3 Druhy flashového streamování, 14 2.3.1 Přímí přenos (Live stream), 14 2.3.2 Přenos ze záznamu (VOD), 14 2.4 Real-Time Messaging Protocol, 15 2.4.1 Action Message Format, 15 2.4.2 RTMP, 16 2.4.3 RTMPT, 16 2.4.4 RTMPS, 16 2.4.5 RTMPE, 17 2.4.6 RTMPTE, 17 3. Flash streamovací servery, 18 3.1 Adobe Flash Media Server, 18 3.1.1 Edice Adobe Flash Serveru, 18 3.1.1.1 Flash Media Interactive Server, 18 3.1.1.2 Flash Media Streaming Server, 19 3.1.1.3 Flash Media Development Server, 19 3.1.2 Podporované technologie serverů Adobe, 20 3.1.3 Instalace a spuštění serveru Adobe, 21 5
3.1.4 Kodeky podporované servery Adobe, 22 3.1.4.1 Audio kodeky, 22 3.1.4.2 Video kodeky, 22 3.1.5 Zhodnocení Adobe Flash Media Serveru, 22 3.2 Red5 Server, 23 3.2.1 Verze serveru Red5, 23 3.2.1.1 Release Candidate, 23 3.2.1.2 Final, 23 3.2.1.3 Vývoj serveru Red5, 24 3.2.2 Instalace serveru Red5, 26 3.2.3 Kodeky podporované serverem Red5, 32 3.2.3.1 Audio kodeky, 32 3.2.3.2 Video kodeky, 32 3.2.4 Zhodnocení Red5 serveru, 33 3.3 Wowza Media Server 2, 33 3.3.1 Edice Wowza Media Serveru, 33 3.3.1.1 Developer edition, 33 3.3.1.2 Evaluation edition, 33 3.3.1.3 Subscription a Perpetual edition, 34 3.3.1.4 Amazon EC2 edition, 34 3.3.2 Instalace a spuštění Wowza Media Serveru, 34 3.3.3 Kodeky podporované servery Wowza, 36 3.3.3.1 Audio kodeky, 36 6
3.3.3.2 Video kodeky, 37 3.3.4 Zhodnocení Wowza Media Serveru, 37 3.4 Komparace serverů, 38 4. Kodeky, 39 4.1 Ztrátové kodeky, 39 4.2 Bezeztrátové kodeky, 39 4.3 Audio kodeky, 40 4.3.1 AAC, 40 4.3.2 Speex, 40 4.3.3 Nelly Moser, 41 4.4 Video kodeky, 41 4.4.1 On2 VP6, 41 4.4.2 H.264, 41 4.4.3 Sorenson Spark, 42 4.5 Podpora kodeků ve flashových přehrávačích, 42 5. Videokonferenční software, 43 5.1 Zadání projektu, 43 5.2 Vytyčené cíle projektu, 43 5.3 Splněné cíle, 43 5.4 Ukázka dokumentace, 44 6. Závěr, 45 Literatura, 47 7
Slovníček zkratek VOD Video on Demand API Aplication Programing Interfeace AMF Action Message Format RTMP Real Time Messaging Protocol SSL Secure Socket Layer USD United States Dollar RC Release Candidate FLV Flash Video DVR Digital Video Recorder DVD Digital Versatile Disc 8
Seznam obrázků 2.1 Schéma přenosu streamovaného obsahu 2.2 Schéma přenosu streamů 2.3 Příklad RTMP packetu 3.1 Instalace Red5 nastavení portu serveru 3.2 Nastavení ip adresy serveru 3.3 Nastavení proměnné ANT_HOME 3.4 Nastavení proměnné JAVA_HOME 3.5 Nastavení proměnné CLASSPATH 3.6 Příklad chybového výpisu 9
Seznam tabulek 3.1 Vlastnosti jednotlivých serverových edice Adobe 3.4 Srovnávací tabulka serverů 4.1 Podpora kodeků pro jednotlivé verze flash přehrávače 10
Kapitola 1 Úvod Cílem této práce je seznámení se serverovými produkty na poli streamování flashového videa a jejich porovnání. Přiblížení problematiky využití jednotlivých produktů a následné využití získaných poznatků v realizaci projektu videokonference. Tato bakalářská práce by měla posloužit a pomoci zájemcům o flashové streamování. Streamování pomocí technologií flash je v dnešní době velice aktuální téma. Drtivá většina uživatelů připojených k internetu má na svém počítači nainstalován flashový přehrávač. Stále více uživatelů využívá své internetové připojení ke sledování audio-vizuálního obsahu. Nejlepším příkladem tohoto novodobého fenoménu je video server YouTube. Avšak jen zlomek uživatelů ví co si pod pojmem streamování či streamovací server představit. Serverů pro streamování videa ve formátu flash je na trhu pouze několik. Tyto servery se vyskytují jak v placené (Adobe Flash Media Server, Wowza Media Server), tak i v open source (Red5 Server) formě. I přes jejich nízký počet neexistuje jejich rozsáhlejší srovnání. A právě tento nedostatek se tato práce snaží napravit. 11
Kapitola2 Úvod do flashového streamování 2.1 Co je streamování 1 Pojem streamování vychází z anglického slova stream neboli proud. V dnešní době se streamování využívá hlavně k tzv. webcastingu čili přenosu audio-vizuálního obsahu na internetu. Streamování je možné popsat jako kontinuální přenos audio-vizuálních materiálů mezi poskytovatelem (serverem) a odběratelem (klientem), bez nutnosti jejich fyzického stahovaní na pevný disk. Hlavní výhodou streamu je okamžité přehrávání jakéhokoli vyžadovaného audio-vizuálního celku. Klient již nemusí čekat dlouhé nudné minuty na stažení žádaného videa. To je mu prostřednictvím streamovacího serveru dodáno okamžitě. Lze se libovolně přesouvat ve stopáži jako u audia-videa uloženého na pevném disku klienta a přitom je vše bez čekání a bez nevýhody, jenž sebou přináší omezená kapacita pevných disků a médií. 2.2 Princip flashového streamování Technická stránka realizace streamovaného přenosu je dána schématem na obrázku 2.1. 1 Převzato z Webzurnal, Co je co v IT [1],[2] 12
2 Obrázek 2.1: Schéma přenosu streamovaného obsahu Záznamové zařízení je například videokamera či jiné audio-vizuální záznamové zařízení. Encoder je počítač, jenž převede audio-vizuální materiál ze záznamového zařízení na video formát akceptovaný serverem. Server se stará o, jenž se postará o distribuci audio-vizuálního obsahu mezi klienty. Klient je software, jenž se napojí na server a postará se o přehrávání záznamu. Je spouštěn na počítači uživatele. Uživatelé se na server připojují přes síť. Streamovací server je v podstatě hub. Toto připojení se podobá trubce, v níž jsou obsaženy jednotlivé datové proudy (streamy). Každý datový proud (stream) může běžet pouze jedním směrem a přenášet informace mezi serverem a klientem, znázorněno na obrázku 2.2 Počet uživatelů, kteří se mohou na server připojit, závisí na rychlosti připojení, výkonu serveru a jeho nastavení. 2 Převzato z ADOBE FLASHMEDIA SERVER 3.5 Developer Guide [4] 13
3 Obrázek 2.2: Schéma přenosu streamů 2.3 Druhy flashového streamování Streamování se dělí podle typu přenosu. A to na přenos přímý a přenos ze záznamu. 2.3.1 Přímý přenos (Live stream) Při přímém přenosu je signál z vysílání přenášen, v reálném čase přes server, přímo ke klientovi. Všichni klienti, připojení na server, přijímají stejný signál. Tento druh přenosu signálu lze nejlépe přirovnat k televiznímu vysílání. Lze jej využít především při realizaci videokonferencí. 2.3.2 Přenos ze záznamu (VOD stream) VOD neboli Video On Demand (Video na vyžádání), při tomto druhu přenosu si klient sám vybere záznam, o který má zájem. Při streamování záznamu se lze libovolně přesouvat ve stopáži, tento druh streamování lze nejlépe přirovnat k přehrávání videa na DVD přehrávači. 3 Převzato z ADOBE FLASHMEDIA SERVER 3.5 Developer Guide [4] 14
2.4 RTMP (Real-Time Messaging Protocol) 4 Aplikace klienta ke komunikaci se serverem používají RTMP protokol. Jedná se o transportní protokol na bázi TPC protokolu vyvinutý společností Adobe pro použití s flash přehrávačem. RTMP protokol umožňuje plynulou komunikaci a přenos signálu mezi serverem a klientem v přítomném čase. Podporuje až 64 datových proudů (streamů) na jedno připojení. Streamovaný obsah je rozložen na AMF packety (většinou 64-128 bitů pro video a 64 bitů pro audio). Poté je streamován ke klientovi. Velikost streamovaných částí mezi klientem a serverem může být plynule měněna. Přenos může být i zastaven pokud je to vyžadováno. Komunikace v rámci RTMP protokolu je vždy inicializována klientem. 2.4.1 AMF (Action Message Format) 5 AMF je používán pro odesílání a přijímání veškerého audiovizuálního obsahu. Vlastní komunikace se serverem pomocí AMF probíhá následovně. První AMF packet, jenž je klientem odeslán na server obsahuje informaci o připojení na server a informuje klienta, že klient je připraven na přijímání dalších packetů. Druhý odeslaný packet obsahuje NetConnection objekt od klienta. Action skriptová třída NetConnection je využívána k vytvoření spojení se serverem. Třetí packet odeslaný klientem obsahuje NetStream objekt. Action skriptová třída NetStream specifikuje obsah, jenž má být streamován ke klientovi. 4 Převzato z KnowledgeSutra [3] 5 Převzato z Acmewebworks [6] 15
6 Obrázek 2.3: Příklad RTMP packetu 7 Streamovací servery používají 5 konfigurací RTMP protokolu. 2.4.2 RTMP (Real-time Messaging Protocol) Standardní konfigurace protokolu. Přednastavený na port 1935, pokud není specifikováno jinak. 2.4.3 RTMPT (Tuneling Real-Time Messaging Protocol) Tato konfigurace umožňuje datům, jenž jsou přes RTMP odesílána,pomocí HTTP pronikat přes firewall. Přednastavený na port 80. 2.4.4 RTMPS (SSL Real-Time Messaging Protocol) V této konfiguraci je protokol RTMP odesílán skrze SSL (Secure Socket Layer). SSL je protokol, jenž umožňuje chráněné TCP/IP připojení. Tato konfigurace je přednastavena na port 443. 6 Převzato z wiki.gnashdev 7 Převzato z ADOBE FLASHMEDIA SERVER 3.5 Developer Guide [4] a Wowza Media Server 2 User's Guide [5] 16
2.4.5 RTMPE (Encrypted Real-Time Messaging Protocol) Kódovaná verze RTMP protokolu. Rychlejší než RTMPS, navíc nevyžaduje přednastavení portu. 2.4.6 RTMPTE (Encrypted Tuneling Real-Time Messaging Protocol) Kombinace RTMPE a RTMPT protokolu. Využívá tunelovou vlastnost RTMPT protokolu a obohacuje ji o kódování RTMPE protokolu. Přednastavení port pro tuto konfiguraci je 80. 17
Kapitola 3 Flash streamovací servery Tato kapitola je věnována jednotlivým serverů na trhu. Jak produktům placeným (Adobe Flash Media Server a Wowza Media Server), tak open-source serverům (Red5 Server). 3.1 Adobe Flash Media Server 8 Společnost Adobe vydala koncem roku 2008 nejnovější verzi Flash Media Serveru 3.5. Původní koncept streamovacího serveru od společnosti Adobe byl určen pro vojenské použití. Konkrétně za účelem videokonferenčního spojení vojáků s jejich rodinami. Od časů této první koncepce uběhlo již několik let a tyto roky byly uvážlivě investovány do vývoje na poli streamování. Streamovací servery Adobe jsou dnes považovány za špičkou na trhu. Bohužel většinu potenciálních zájemců o Adobe Flash Media Server dokáže spolehlivě odradit cena tohoto produktu. 3.1.1 Edice Adobe Flash Serveru Společnost Adobe poskytuje svým zákazníkům flashový streamovací server verze 3.5 ve třech edicích. 3.1.1.1 Flash Media Interactive Server Plná verze serveru bez jakýchkoli omezení. Jedná se o placený produkt. Současná cena této serverové edice je 4500 USD. 18
3.1.1.2 Flash Media Streaming Server Verze serveru podporující pouze Live a VOD streaming. Tato verze serveru nepodporuje nahrávání streamu ani skripty na straně serveru. Současná cena této serverové edice je 1000 USD. 3.1.1.3 Flash Media Development Server Vývojová verze serveru. Podporuje vše co Flash Media Interactive Server, avšak s omezením na 10 připojených klientů. Pouze tato edice serveru je společností Adobe poskytována po registraci zákazníka zcela zdarma. Pro potřeby této práce byla využita tato vývojová edice serveru. 8 Převzato z ADOBE FLASHMEDIA SERVER 3.5 Developer Guide 19
3.1.2 Podporované technologie serverů Adobe Funkce Počet připojených klientů na server Flash Media Interactive Server Flash Media Streaming Server Flash Media Development Server Neomezeno Neomezeno 10 Bandwidth Neomezeno Neomezeno Neomezeno Live a VOD stream Obsaženo Obsaženo Obsaženo Multiaplikace Neomezeno Neomezeno Neomezeno Nahrávání videa na server Obsaženo Neobsahuje Obsaženo Serverové programování Obsaženo Neobsahuje Obsaženo Mnohobodová publikace Obsaženo Neobsahuje Obsaženo Podpora C++ pluginů Obsaženo Neobsahuje Obsaženo Hlavní serverové procesy Kódované streamování (RTMPE/RTMPS) Neomezeno 1 1 Obsaženo Obsaženo Obsaženo SWF ověřování Obsaženo Obsaženo Obsaženo HTTP Obsaženo Obsaženo Obsaženo DVR funkce Obsaženo Neobsahuje Obsaženo Dynamické streamování Obsaženo Obsaženo Obsaženo Streamování kódovaného videa Maximální počet procesorů Obsaženo Obsaženo Obsaženo 8 4 8 20
9 Tabulka 3.1 Technologie jednotlivých serverových edic Adobe 3.1.3 Instalace a spuštění serveru Adobe Server lze stáhnout po registraci a následném přihlášení na stránkách Adobe. Server je k dispozici ve verzích pro operační systémy Windows a Linux Red Hat 4, nebo 5.2. Instalační soubory budou staženy zabalené v archivu formátu winrar. Doporučená hardwarová konfigurace pro bezproblémový chod serveru je: 3.2GHz Intel Pentium 4 procesor (dual Intel Xeon nebo lepší), 4GB RAM, 1GB Ethernetová karta. Server i dokumentace jsou k dispozici pouze v anglickém jazyce. Společně se serverem bude stažena i rozsáhlá dokumentace. Nachází se po rozbalení staženého archivu ve složce Documentation. Samotná instalace serveru na jednotlivé operační systémy je přehledně popsána v dokumentaci, část Instaling. Nepovažuji, proto za nutné zde instalaci krok za krokem rozebírat, obzvláště na operačních systémech Windows se jedná o triviální postup. Spuštění serveru v operačním systému Windows probíhá následovně. Start > Všechny programy > Adobe > Flash Media Server 3.5 > Start Adobe Flash Media Server 3.5. Server je také vybaven přehledným administračním rozhraním, jenž lze spustit v operačním systému Windows následovně. Start > Všechny programy > Adobe > Flash Media Server 3.5 > Start Flash Media Administration Server 3.5. 9 Převzato z ADOBE FLASHMEDIA SERVER 3.5 Developer Guide [4] 21
3.1.4 Kodeky podporované servery Adobe Adobe Flash Media Server podporuje tyto audio a video kodeky. Všechny uvedené kodeky jsou blíže popsány v kapitole 4. 3.1.4.1 Audio kodeky Kodek AAC Kodek Speex Kodek Nelly Moser 3.1.4.2 Video kodeky Kodek On2 VP6 Kodek H.264 Kodek Sorenson Spark 3.1.4 Zhodnocení Adobe Flash Media Serveru Adobe Flash Media Server se právem řadí na špici produktů na poli flashového streamování. Díky kvalitní dokumentaci a přednastaveným aplikacím je spuštění vlastního streamování otázkou několika minut po instalaci serveru. Bohužel vysoká pořizovací cena jej vyřazuje z používání běžným uživatelem. Volně dostupná vývojová verze serveru je omezena na 10 připojení, což stačí tak akorát na menší videokonferenční systém v rámci lokální sítě. 22
3.2 Red5 server Server Red5 je distribuován pod licencí open-source a tudíž je zcela zdarma. To je také jeho nesporně největší výhoda oproti placeným streamovací serverům. Server Red5 je vyvíjen hlavně komunitou uživatelů, bohužel ani po několikaletém vývoji stále nedosáhl verze 1.0. Aktuální verze serveru je 0.9.1. Také dokumentace k Red5 serveru nedosahuje kvality dokumentace k serverům Adobe a Wowza. Proto je jeho používání oproti placeným streamovacím serverům daleko obtížnější a problematičtější. 3.2.1 Verze serveru Red5 Server Red5 je k dispozici v několika verzích. Nejlépe je stahovat vždy o něco starší než aktuální verzi. Důvody proč tomu tak je, jsou popsány níže. 3.2.1.1 Release Candidate Verze serveru označené jako Release Candidate (RC) jsou ne zcela stabilní verze serveru, jenž jsou určeny, uživatelům majícím zájem o testování a vývoj serveru Red5. Zpravidla jsou vydávány dvě nebo tři verze serveru RC1, RC2 výjimečně RC3 před vydáním verze Final. Přičemž platí, že RC3, RC2 jsou odladěné verze RC1. 3.2.1.2 Final Verze serveru označené jako Final jsou zpravidla komunitou otestované a poměrně stabilní verze serveru, jenž jsou určeny uživatelům zajímajícím se o využívání serveru Red5. Avšak i zde existují výjimky. Například verze Final 0.9.0 musela být načas stažena díky závažným chybám. 23
3.2.1.3 Vývoj serveru Red5 10 Časový vývoj serveru Red5 spolu s nejdůležitějšími změnami, kterými server prošel. Red5 0.2 (2005-10-21) První uveřejněná verze obsahující základní video streamy. Red5 0.3 (2006-02-21) Přidán Live stream a sdílení objektů. Red5 0.4 (2006-04-20) Přidán protokol RTMPT. Přidáno veřejné rozhraní pro programování aplikací (API, Aplication Programing Interfeace). Red5 0.4.1 (2006-05-01) Přidány Mp3 streamy. Přidána příkladová aplikace pro videokonferenci s podporou flashového přehrávače 7. Red5 0.5 Rc1 (2006-07-11) Upraven kód pro streamování. Upraven rozsah služeb. Upraven kód pro de- /kódováni RTMP. Přidána experimentální podpora pro serverový streaming. Red5 0.5 (2006-07-25) Red5 0.6 Rc1 (2006-10-30) 10 Převzato z Red5 [17] 24
Vytvořena WAR (Web Aplication Archive) verze serveru RED5. Přidána podpora pro skriptování. Red5 0.6 Rc2 (2007-02-12) Red5 přeprogramován do Java6. Přidána podpora AMF3. Red5 0.6 Rc3 (2007-04-11) Přidána podpora z Flash Media Encodéru a On2 Flix Live. Red5 0.6 (2007-04-23) Red5 0.6.1 (2007-05-23) Přidána konfigurační nastavení serveru Red5. Red5 0.6.2 (2007-06-17) Red5 0.6.3 (2007-04-23) Zprovoznění RTMPT na Tomcatu. Aplikace mohou být nyní nahrávaný a mazány bez nutnosti restartovat server. Red5 0.7 (2008-02-23) Přidána podpora pro serverový Javascript. Přidána nová třída, jenž umožňuje několika klientům zároveň se připojit ke stejné aplikaci. Red5 0.8.0 Rc1 (2008-09-29) Přidána podpora RTMPS. Přidán instalátor webových aplikací. Red5 0.8.0 Rc2 (2009-02-07) 25
Red5 0.8.0 (2009-06-04) Red5 0.9.0 (2009-01-27) Přidány nové kodeky pro streamování videa. Přidána nativní podpora RTMPS protokolu. 3.2.2 Instalace serveru Red5 Server Red5 lze stáhnout zcela zdarma na adrese, v levém horním menu Download zvolte Releases. Objeví se před vámi tabulka s verzemi dostupnými ke stažení. V rámci uspokojivého vývoje serveru a jeho jednoduššího provozu lze doporučit stahování pouze verzí označených jako Final. Také se ukázalo jako vhodné stahovat starší verze. Je-li tedy momentální nejnovější dostupná verze 0.9.1 je vhodné uchýlit se ke stažení verze 0.8.0 a to z důvodů vývoje aplikačních řešení. Obzvláště pro začínající uživatele je tento krok poměrně klíčový, neboť vývoj serveru se rychle mění, a tak je značná část aplikačních řešení vytvořená komunitou okolo red5 serveru pro jednu jeho verzi nepoužitelná v další. Platí tak, že pro starší verze serveru red5, již existují mnohá dostupná aplikační řešení poskytovaná touto komunitou. Také řešení mnohých potíží s používáním a vývojem starších verzí serveru jsou na komunitních fórech uveřejněna a otestována. Dále je třeba zvolit instalační balík určený pro váš operační systém. Pro potřeby této práce byl použit instalační balík pro Windows. Vzhledem k tomu, že instalace serveru Red5 na operační systém Windows je celkem složitá, rozhodl jsem se ji popsat detailněji. 26
11 Doporučená hardwarová konfigurace pro bezproblémový chod serveru je: Dvou nebo čtyř jádrový procesor o taktu 2Ghz a vyšší (Intel Xeon nebo Opteron), 4GB RAM, 1GB Ethernetová karta, 200 MB volného místa na pevném disku. Po stažení instalačního souboru (setup-red5-0.9.1.exe), jej spustíme. Po odsouhlasení licenční smlouvy, vybereme instalační adresář. Během instalace se objeví 2 tabulky (níže obrázek 3.1 a 3.2). Pro instalaci serveru na lokální počítač zvolíme nastavení ip adresu serveru 127.0.0.1 a číslo portu 5080. Pro provoz serveru Red5 je třeba stáhnout a nainstalovat nejnovější JDK (Java Development Kit). Dále pak Apache Ant server pro operační systém Windows. Apache Ant lze stáhnout jako instalátor pro operační systém Windows, nebo jako archiv. O funkčnosti Windowsové instalační verze lze pochybovat. Lepších výsledků jsem dosáhl s archivovanou verzí. 11 Převzato z Red5 [15] 27
Obrázek 3.1: Nastavení portu serveru Obrázek 3.2: Nastavení ip adresy serveru 28
Instalaci archivované verze Apache Ant provedeme následujícím způsobem. Rozbalíme archiv, ideálně například do D:\ant. Poté dodržíme následující postup. Tento Počítač > Vlastnosti > Upřesnit > Proměnné prostředí > Nová proměnná Definujeme novou proměnnou s názvem ANT_HOME a s hodnotou jenž odpovídá cestě do adresáře, kde se nachází Apache Ant (příklad na obrázku 3.3). Obrázek 3.3: Nastavení proměnné ANT_HOME Dále zkontrolujeme nastavení proměnné JAVA_HOME pokud byl JDK správně nainstalován bude proměnná již definována do složky bin v adresáři JDK (příklad na obrázku 3.4). 29
Obrázek 3.4: Nastavení proměnné JAVA_HOME Poslední proměnná již je třeba nastavit je CLASSPATH. Tato proměnná bude pravděpodobně již definována. Je však třeba zkontrolovat aby odkazovala skutečně do adresáře, kde jsou uloženy vaše javové třídy (příklad na obrázku 3.5). Pokud by tomu tak nebylo, můžete se při zpuštění serveru dočkat nepříjemného překvapení ve formě chybového výpisu (příklad na obrázku 3.6). Úspěch instalace lze ověřit otevřením stránky http://localhost:5080/. Pokud byla instalace úspěšná můžeme v prohlížeči přejít na stránku http://localhost:5080/installer a nainstalovat vybrané ukázkové aplikace. Bohužel pouze zlomek těchto aplikací je funkční tak jak je 30
napsáno na stránkách serveru Red5. Uživatel je tak nucen hledat rady na komunitních fórech, které si často odporují a navíc nalézt funkční řešení pro právě aktuální verzi serveru je velice náročné. Obrázek 3.5: Nastavení proměnné CLASSPATH 31
Obrázek 3.6: Příklad chybového výpisu 3.2.3 Kodeky podporované serverem Red5 Server Red5 podporuje tyto audio a video kodeky. Všechny uvedené kodeky jsou blíže popsány v kapitole 4. 3.2.3.1 Audio kodeky Kodek AAC Kodek Speex Kodek Nelly Moser 3.2.3.2 Video kodeky Kodek On2 VP6 Kodek H.264 Kodek Sorenson Spark 32
3.2.4 Zhodnocení Red5 serveru Server Red5 má jistě potenciál ve vývoji. A je škoda, že díky absenci kvalitní dokumentace je obtížné proniknout do jeho používání. Také kvalita ukázkových aplikací není příliš vysoká ve srovnání například s Adobe Flash Media Serverem. Nezbývá než doufat, že s vydáním verze 1.0 server dospěje a zbaví se tak těchto nedostatků, které jinak jistě skvělí projekt staví do nepříznivého světla. 3.3 Wowza Media Server 2 3.3.1 Edice Wowza Media Serveru 12 Wowza Media Systems poskytuje své servery v 5ti edicích. 3.3.1.1 Developer edition Vývojová verze server Wowza Media je poskytována zdarma. Je třeba se pouze zaregistrovat na stránkách Wowza Media Systems. Vývojová verze serveru podporuje, až na dvě výjimky stejné technologie jako Subscription edition a Perpetual edition. První výjimkou je počet připojení, který je stejně jako u vývojového serveru Adobe limitován na 10. A druhou výjimkou je limitovaný časový limit streamování. 3.3.1.2 Evaluation edition Tato edice serveru Wowza Media poskytuje plnou funkčnost. Za cenu 65 USD. Je však omezena na 30 denní užívání. Je proto výbornou 12 Převzato z Wowza Media Server 2 User's Guide [5] 33
volbou pro vyzkoušení plného provozu streamovacího serveru. 3.3.1.3 Subscription edition a Perpetual edition Jedná se o plně funkční verze serverů Wowza Media. Liší se pouze licenčními ujednáními. Perpetual edice je poskytována za cenu 995 USD. 3.3.1.4 Amazon EC2 edition Technicky stejná edice serveru jako Subscription, liší se licenčním ujednáním. Amazon EC2 edice je před-konfigurovaná verze serveru Wowza Media, jenž běží na EC2 (Amazon Elastic Computing Cloud) platformě. 3.3.2 Instalace a spuštění Wowza Media Serveru Pro získání zkušební vývojové verze serveru je třeba se zaregistrovat na stránkách Wowza Media Systems. Po schválení registrace obdržíte licenční klíč, jenž bude použit při instalaci. Po zadání klíče zvolíte instalační adresář. Tím celý proces instalace končí, v případě komplikací je k dispozici online dokumentace. (http://www.wowzamedia.com/resources.html) Server můžeme spustit následovně. Start > Všechny programy > Wowza Media Server 2 > Wowza Startup. Nastavení přednastavených streamovacích aplikací je řešeno přes xml konfigurační soubory v aplikační složce Wowza Media Serveru. Postup pro konfiguraci jednotlivých streamovacích služeb serveru je přehledně popsán v části dokumentace Quick Start Guide. Následující xml kód je ukázkou nastavení Life streamování. Na lokální síti. 34
35 <Root> <Application> <Connections> <AutoAccept>true</AutoAccept> <AllowDomains></AllowDomains> </Connections> <Streams> <StreamType>live</StreamType> <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</St oragedir> <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir> <LiveStreamPacketizers></LiveStreamPacketizers> <Properties> </Properties> </Streams> <HTTPStreamers>cupertinostreaming,smoothstreaming</HTTPStreamers > <SharedObjects> <StorageDir></StorageDir> </SharedObjects> <Client> <IdleFrequency>-1</IdleFrequency> <Access> <StreamReadAccess>*</StreamReadAccess> <StreamWriteAccess>*</StreamWriteAccess> <StreamAudioSampleAccess></StreamAudioSampleAccess> <StreamVideoSampleAccess></StreamVideoSampleAccess> <SharedObjectReadAccess>*</SharedObjectReadAccess> <SharedObjectWriteAccess>*</SharedObjectWriteAccess> </Access> </Client> <RTP> <Authentication> <PublishMethod>digest</PublishMethod> <PlayMethod>digest</PlayMethod> </Authentication> <AVSyncMethod>senderreport</AVSyncMethod> <MaxRTCPWaitTime>12000</MaxRTCPWaitTime> <Properties> </Properties> </RTP> <MediaCaster> <Properties> </Properties> </MediaCaster> <MediaReader> <Properties> </Properties> </MediaReader> <LiveStreamPacketizer>
<Properties> </Properties> </LiveStreamPacketizer> <HTTPStreamer> <Properties> </Properties> </HTTPStreamer> <Repeater> <OriginURL></OriginURL> <QueryString><![CDATA[]]></QueryString> </Repeater> <Modules> <Module> <Name>base</Name> <Description>Base</Description> <Class>com.wowza.wms.module.ModuleCore</Class> </Module> <Module> <Name>properties</Name> <Description>Properties</Description> <Class>com.wowza.wms.module.ModuleProperties</Class> </Module> <Module> <Name>logging</Name> <Description>Client Logging</Description> <Class>com.wowza.wms.module.ModuleClientLogging</Class> </Module> <Module> <Name>flvplayback</Name> <Description>FLVPlayback</Description> <Class>com.wowza.wms.module.ModuleFLVPlayback</Class> </Module> </Modules> <Properties> </Properties> </Application> </Root> 3.3.3 Kodeky podporované serverem Wowza Wowza Media Server podporuje tyto audio a video kodeky. Všechny uvedené kodeky jsou blíže popsány v kapitole 4. 3.3.3.1 Audio kodeky Kodek AAC Kodek Speex 36
Kodek Nelly Moser 3.3.3.2 Video kodeky Kodek On2 VP6 Kodek H.264 3.3.4 Zhodnocení Wowza Media Serveru Wowza Media Server je do jisté míry kopií Adobe Flash Serveru. To však neznamená, že se jedná o méněcenný produkt. Právě naopak přinést na trh téměř pětkrát levnější kopii špičky na trhu je rozhodně mistrovským tahem společnosti Wowza Media Systems. Server Wowza Media oplývá dobrou dokumentací, technickou podporou a je i dostatečně jednoduchý pro začínající uživatele. Vzhledem k možnosti získat za nízkou cenu 30ti denní zkušební verzi Wowza Media Serveru a díky tomu otestovat jeho použití v plném provozu, se Wowza Media Server stává velmi zajímavým pro každého kdo uvažuje o streamování videa a není si jist návratností své investice. 37
3.4 Komparace serverů Funkce Wowza Media Server 2 Red5 Server 0.9.1 Flash Media Development Server 3.5 Cena za plnou verzi serveru 995 USD Zdarma 4500 USD Cena za vývojovou verzi serveru Zdarma Zdarma Zdarma Podporované Protokoly RTMP RTMPT RTMPS RTMPE RTMPTE RTMP RTMPT RTMPS RTMPE RTMPTE RTMP RTMPT RTMPS RTMPE RTMPTE Limit připojení vývojové verze 10 Neomezeno 10 Nahrávání videa na server Obsaženo FLV MP4 Obsaženo FLV Obsaženo FLV Serverové programování Obsaženo Obsaženo Obsaženo Jazyk pro serverové programování Podporované operační systémy Java Java AS2 Windows Mac OS x Linux Unix Solaris Windows Mac OS x Linux (Debian Ubuntu) WAR Gentoo Windows Linux (pouze Red Hat) Podpora Flex Neobsahuje Obsaženo Obsaženo Podpora AMF3 Obsaženo Obsaženo Obsaženo Dynamické streamování Obsaženo Neobsahuje Obsaženo Tabulka 3.4 Srovnání funkcí serverů 38
Kapitola 4 Kodeky V této kapitole jsou popsány jednotlivé audio a video kodeky, které streamovací servery využívají. 13 Slovo kodek vzniklo složením slov kodér a dekodér a označuje software, který převádí signál do požadované podoby většinou za účelem přenosu či šifrování, častěji však naopak pro obnovení originální podoby signálu tak, aby bylo možné jej opět přehrát. Kodeky lze rozdělit na dva základní druhy. 4.1 Ztrátové kodeky Při použití ztrátového kodeku se část informace z audiovizuálního obsahu ztrácí. Tyto kodeky pracují s nedostatky lidských smyslů a zbavují mediální obsah těch částí, jenž člověk těžko či vůbec nevnímá. Například příliš vysokých či nízkých frekvencí v audio obsahu. Tímto způsobem lze dosáhnou poměrně vysoké míry komprese řádově od 1:2 po 1:100. Díky takto vysoké míře komprese jsou ztrátové kodeky vhodné pro potřeby streamování. Přenos datového signálu lze tak úspěšně zkomprimovat do takové míry, aby byl plynulý téměř na každém připojení. 4.2 Bezeztrátové kodeky Při použití bezeztrátového kodeku se z audio-vizuálního obsahu, jenž je upravován, neztrácejí žádné informace. Nedosahují tak, ale příliš 13 Převzato z HÁLEK, Petr. Slunečnice [16] 39