Windows Media Services je léty prověřený produkt Microsoftu pro distribuci multimédií po síti. Nyní jej pomalu nahrazuje novinka – IIS Media Services
Rostoucí rychlosti internetových připojení otevírají brány do světa streamovaných multimédií a to dokonce i na mobilních zařízeních. Microsoft má ve svém portfoliu službu umožňující distribuci multimédií po síti – WMS (Windows Media Services). Tento léty vyzkoušený produkt využívající tradiční stavový protokol RTSP (Real Time Streaming Protocol) na distribuci multimédií ale pomalu ustupuje do ústraní novince v podobě IIS Media Services.
Microsoft zde využívá modularity IIS 7.0 a zdarma dodává přes WPI sadu modulů IIS Media Services umožňující efektivní distribuci multimédií přes webový server a to dokonce i živých přenosů, což byla doposud výsada právě WMS. Proč se v poslední době pomalu ustupuje od tradičních streamovacích protokolů směrem k univerzálnímu HTTP? Důvodů je hned několik:
- RTSP je postaveno nad UDP, což může dělat problémy při průchodu některými firewally (Existuje i varianta RTSP zapouzdřená do HTTP).
- Nemožnost stahovat obsah výrazně dopředu. Problém při nedostatečně rychlé lince, kdy není možné video nechat načíst a následně plynule sledovat.
- Nutnost na server instalovat další roli v podobě WMS.
Z těchto i dalších důvodů se velice oblíbeným způsobem distribuce stal právě progressive download, což není nic jiného než umístění multimediálního souboru na webserver. Přehrávač si následně daný soubor průběžně stahuje přes HTTP a přehrává. Podstatné však je to a z toho také vychází označení progressive download, že přehrávač se snaží soubor stáhnout celý nehledě na aktuální stav přehrávání. Snaží se tedy stáhnout data hodně do budoucna, nikoliv jen následujících 10 vteřin jako tomu bývá u RTSP.
Obr.1 Instalace je velice intuitivní s pomocí WPI
Obr.2 Je ale třeba zobrazit si v nastavení skupinu modulů „Media“ protože ta je ve výchozí konfiguraci skryta.
Tato chování má své výhody, ale mezi nevýhody patří rozhodně v některých případech zbytečné vytěžování linky webserveru, kdy návštěvník s velice rychlou linkou zvládne za první minutu přehrávání načíst polovinu hodinového záznamu a pokud se následně rozhodne přehrávání ukončit, protože jej záznam nezaujal, tak je veliké množství přenesených dat ve výsledku zahozeno.
Výše uvedený problém řeší první komponenta IIS Media Services a tou je Bit Rate Throttling.
Bit Rate Throttling
Bitrate Throttling umožňuje omezit rychlost stahování multimédiálního souboru z webserveru tak, aby bylo možné jej plynule přehrávat a současně nedocházelo k příliš rychlému načítání dat do cache přehrávače. Inteligentně umí zjistit bitrate daného záznamu a podle toho omezit přenosovou rychlost. Pro úvodní rychlé spuštění záznamu (Fast Start) je potom možné po prvních x vteřin povolit plnou rychlost a až poté provést omezení.
Bit Rate Throttling je univerzálně použitelný i na jiné typy souborů, kde je možno podle typu souboru nastavit pevné omezení rychlosti.
Obr.3 Seznam pravidel nastavitelný pro každou website.
Obr.4 Pravidlo je aplikovatelné jak na multimediální soubory, tak na všechny ostatní soubory.
Web Playlists
Jedná se o druhou zajímavou komponentu IIS Media Services sloužící k sestavování playlistů na straně serveru. Pomocí této komponenty můžete vytvořit celý seznam multimediálních souborů na vašem serveru i mimo něj a distribuovat jej klientům. To by nebylo tak zajímavé, kdyby zde nebyly poměrně bohaté možnosti:
- Hlídá se session při přehrávání
- Je možné nastavit pevné pořadí multimédií a zakázat možnost přesunu na další či předchozí záznam, případně zakázat posuny v rámci přehrávaného záznamu.
- Na cílové soubory se odkazuje pomocí automaticky vygenerovaných adres, čímž klient neví skutečnou adresu a soubor nemůže otevřít mimo playlist pokud je to takto nastaveno.
- Díky použití session a nepřímých adres je opravdu dodrženo pořadí přehrávání a ani manuálním otevřením url jiného záznamu jej nelze přehrát, dokud na něj nepřijde řada.
Obr.5 Pohled na zveřejněné playlisty z konzole IIS
Obr.6 Detail playlistu – jednotlivé položky včetně nastavení
Smooth Streaming
Smooth Streaming je to nejdůležitější a nejrevolučnější z celých IIS Media Services. Smooth Streaming umožňuje klientovi přehrávat vždy co nejkvalitnější videozáznam vzhledem k jeho možnostem – bitrate, výkon počítače, velikost přehrávače. Videozáznam je na serveru uložen ve více kvalitách a klient si sám podle svých možností volí, jakou kvalitu chce stahovat.
Možnost automatického přepínání bitrate nabízejí už i WMS, ale Smooth Streaming umožňuje tyto změny kvality provádět velice dynamicky a s důrazem na to, aby přehrávání nebylo přerušeno, takže WMS zde byly výrazně překonány.
S technologií Smooth Streaming se pro vás čekaní na načtení videa stane minulostí, již žádné „buffering“ a přerušování přehrávání.
Historie této technologie sahá k letním olympijským hrám v roce 2008, kdy na webu NBCOlympics.com byla poprvé použita nová a netradiční technologie přenosu záznamů využívající Silverlightový přehrávač nabízející klientům obraz i v HD kvalitě, pokud na to mají linku.
Na pozadí byl záznam vždy zencodován do několika kvalit od velice nízkých bitrate (300 kbps) až po HD kvalitu (v řádu mbps). Podstatné je, že video bylo rozsekáno do velice krátkých úseků (několik vteřin) které na sebe navazovaly a tyto úseky byly potom zpracovány do všech kvalit. Soubory stejné kvality byly zařazeny do stejné podsložky a byly očíslovány vzestupně podle svého pořadí.
Z výše uvedeného způsobu zpracování podkladových dat vyplývá klíčová vlastnost Smooth Streamingu – přepínání kvalit si řídí přímo přehrávač stahováním vhodných kvalit záznamu podle svých možností nezávisle na serveru. Tyto změny jsou velice rychlé a při změně kvality nedojde k žádnému zadrhnutí nebo přerušení přehrávání.
Tato technologie se osvědčila v praxi, z toho důvodu Microsoft upravil její nedostatky – místo miliónů malých souborů máte nyní jeden pro každou kvalitu, který umí Smooth Streaming modul do IIS efektivně procházet a podle URL zasílat klientovi části které klient požaduje.
Pro přehrávání je nutné využívat Silverlightový přehrávač s podporou Smooth Streamingu (někdy označováno Adaptive Streaming). Tvorbu záznamů umožňuje Expression Encoder 2 SP1 a vyšší. Ukázku si můžete prohlédnout zde.
Obr.7 Testovací přehrávač, který umožňuje sledovat změny v kvalitě přehrávání a případně simulovat zpomalení vaší linky.
Obr.8 Při posunutí záznamu je reakce velice rychlá (žádné vteřiny načítání), protože přehrávač dočasně načte nížší kvalitu.
Obr.9 V rámci konzole IIS je potom možné zobrazit si informace o Smooth Streaming záznamech v dané složce
Live Smooth Streaming
Jedná se o obdobu klasického Smooth Streamingu určeného pro živé přenosy. Encoder zpracovává živý záznam z kamer a jiných zdrojů a odesílá jej na server, který se poté stará o jeho distribuci klientům. Výhodou je, že automaticky když se připojí klient k již probíhajícímu záznamu má možnost si záznam posunout na začátek události a nic nezmeškat.
Tato technologie má obrovskou nevýhodu v HW náročnosti zpracování dat na encoderu, kdy na živé HD přenosy je třeba využít HW encoder v ceně přes 15000$.
Obr. 10 Ukázka zpracování živého přenosu s využitím Live Smooth Streamingu.
Představil jsem vám moderní platformu pro distribuci multimédií. Její možnosti ale zdaleka nekončí možnostmi uvedenými v tomto článku, takže pokud vás IIS Media Services zaujaly, doporučuji je vyzkoušet a v případě zájmu si můžete projít další materiály:
• http://www.iis.net/media
• http://www.inlethd.com/sites/default/files/file/InletSmoothStreamingWhitePaper.pdf
• http://smf.codeplex.com/
Autor: David Gešvindr (MSP)
Články ze série Microsoft TechNet nevytváří redakce Živě.cz, ale partneři programu Microsoft TechNet. Jsou publikovány v rámci mediálního partnerství Živě.cz a společnosti Microsoft.