Nemyslím teď YouTube, Silverlight Streaming a podobně - myslím sdílení videosouborů na vlastním webovém serveru. To lze udělat různými způsoby, které se často pletou, proto bych je chtěl trochu vyjasnit.

Úroveň 1: Nejjednodušší přístup

Nejjednodušší přístup je opravdu jednoduchý. Vezmu soubor a nakopíruji ho do virtuálního adresáře na web serveru, stejně jako bych to udělal s obrázkem. Přehrávačem pak může být Windows Media Player anebo soubor mohu různými způsoby vložit do webové stránky (např. vytvořit přehrávač v Silverlight a předat mu odkaz na videosoubor). Většina přehrávačů je natolik chytrá, že přehrávání spustí, jakmile si ze serveru stáhne "právě dost" obsahu, zbytek souboru se pak stahuje na pozadí - a to maximální možnou rychlostí, kterou server, klient a síťové spojení mezi nimi dovolí (tzv. progressive download). Zátěž sítě je vidět na obrázku:

image

Úroveň 2: Optimalizace síťové komunikace

Kopírování "stejně jako obrázek" v předchozím případě má jeden zádrhel: video totiž není obrázek. Zatímco obrázek chci jistě na stránce vidět celý, drtivá většina uživatelů video nedokouká do konce. Pokud mu ho pošleme celé co největší rychlostí, promrhali jsme zbytečně spoustu kapacity síťové linky, které se nám může záhy nedostávat - při připojení více uživatelů a velikosti videa je to celkem rychle nastávající scénář.

Abychom tomu zabránili, lze na IIS 7 použít modul, což je bezplatný doplněk IIS 7 - je k dispozici pro x86 i x64 platformu. Tento doplněk si přečte z metadat příslušného multimediálního souboru potřebnou šířku pásma (v mém případě 120 kbps) a při odesílání na klienta "brzdí" přenos na rychlost odpovídající danému médiu plus rezerva na nastavený počet sekund dopředu - viz obrázek.

image

Efekt na síťovou komunikaci je patrný - objem přenášených dat za jednotku času je výrazně nižší (viz obrázek níže). Jednotlivé peaky jsou způsobeny mým pohybem v čase přehrávaného videa (operace Seek), pak se samozřejmě musí příslušný počet sekund dopředu znovu natáhnout a objem přenášených dat tak krátkodobě vzroste.

image 

Úroveň 3: Nejdokonalejší

Nejdokonalejší, ale zároveň složitější způsob na nastavení přinášejí Windows Media Services. Fungují jako nová role pro Windows Server 2008, která se nainstaluje odtud. K dispozici jsou ale i pro předchozí verze serverových operačních systémů.

image

Administrace se pak provádí jiným nástrojem (obrázek níže), neboť s IIS nemají Windows Media Services nic společného. Nepoužívá HTTP protokol, ale místo toho protokoly RTSP (specifikace RFC 2326) a RTP (specifikace RFC 3550). To se také projevuje tím, že adresa videa začíná mms:// a ne http:// jako v předchozích případech.

image 

Když se podíváme na záznam síťové komunikace je ještě lepší než předtím - hlavně peaky jsou nižší.

image

Je to dáno primárně tím, že server "rozumí" tomu, co posílá. Takže např. při posunu (Seek) ví přesně, co poslat. Rozumí šířce pásma, latenci a dalším věcem.

A má celou řadu dalších výhod - umožňuje multicast přechod, zabraňuje zcizení (stažení) videa klientem, a řada dalších - nebudu opakovat co napsali jiní, třeba tady.