HTTP Live Streaming
HTTP Live Streaming (známé také jako HLS) protokol pro streamování ohraničených či neohraničených multimediálních dat. Protokol byl představen společností Apple jako součást balíčku QuickTime, v době vydání verze mobilního operačního systému iOS 3 v létě 2009.
Jeho hlavní výhodou je možnost přizpůsobení datového toku aktuální propustnosti sítě. Všechny dotazy v rámci protokolu probíhají nad HTTP protokolem, proto je jej možné nasadit na již existující infrastruktury a bez problému jej nechat proudit přes firewally či proxy servery. Možné je také nasazení je do sítí CDN.
Společnost Apple tento protokol dokumentuje a v roce 2009 z této dokumentace vznikl Internet-Draft. Od té doby je protokol stále ve fázi draft, protože jej Apple stále upravuje.
Obsah |
Princip [editovat]
Základní princip HTTP Live Streaming protokolu je vytvoření několika různých kvalit požadovaného videa, které se na klientovi adaptivně načítají podle stavu sítě.
Zakódování audia a videa [editovat]
Videa se zakódují do MPEG-TS, který je určen pro přenos multimediálních dat. Každé takové video se následně rozdělí na malé segmenty, které umožňují například posouvání ve videu bez nutnosti čekání na stažení celého videa. Ve 4 verzi protokolu byla přidána možnost videa nechat v jednom souboru a namísto segmentování, což umožňuje rychlejším sítím menší zátěž na komunikaci. [1]
Apple dává k dispozici sadu nástrojů na zpracování videí, které však nejsou dostupné pro ostatní platformy. Na internetu lze ale dohledat různé open-source varianty některých nástrojů, třeba pro segmentaci. [2]
Na požádání vs. živě [editovat]
Videa je možné zakódovat buď celá v době když jsou již hotová, nebo je možné je zakódovávat přímo takzvaně na živo. Rozdíl je pak v tom, že seznam segmentů neobsahuje ukončení a neustále roste. Je tak možné vytvářet videozáznamy z živých přenosů, které jsou rovnou k dispozici jako videa na vyžádání.
Playlisty [editovat]
Každé video při segmentování vytváří seznam souborů, aby jej klient později mohl najít.
Formát tohoto seznamu je odvozen od formátu M3U, s tím rozdílem, že je kódován v UTF8, což mu do názvu přidává koncovku M3U8. Každé video je pak opatřeno ještě jedním takzvaným variantním playlistem, který obsahuje odkazy na jednotlivé varianty videa.
Příklad playlistu pro jedno konkrétní video:
#EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:10, http://media.example.com/segment0.ts #EXTINF:10, http://media.example.com/segment1.ts #EXTINF:10, http://media.example.com/segment2.ts #EXT-X-ENDLIST
V prvních verzích bylo možné mít videa v různých kvalitách a na různých server s cílem co největší dostupnosti. Od verze 4 je možné mít u videa různé jazykové mutace zvukové stopy či různé verze obrazu, což je užitečné v případě, že je video natáčeno z více než jedné kamery najednou.
Videa je také možné v přenosu zašifrovat a to pomocí AES-128 klíčů. Video pak působí jako náhodný shluk dat.
Klienti [editovat]
Mobilní [editovat]
Díky své adaptibilitě stavu sítě nachází protokol svoje uplatnění hlavně v mobilní sféře. Apple jej s uvedením iOS 3 integroval do mobilních zařízení iPhone a iPod Touch, o něco později pak přidal podporu i tabletu iPad. Všechny nativní aplikace pro iOS obsahující videa přesahující délku 10 minut či velikosti 5 MB musí využívat tento protokol, jinak může být aplikace zamítnuta v procesu přidání do App Store.[3] Na počátku roku 2011 přidala společnost Google podporu tohoto protokolu do platformy Android a to od verze 3 a výše.[4]
Desktopové [editovat]
Z aplikaci pro osobní počítače podporu protokolu obsahuje již zmíněný QuickTime. Dále je videa pomocí tohoto protokolu schopen přehrát multimediální přehrávač VLC či Roku Digital Video Player.
HTML [editovat]
Apple tento protokol také používá v aplikacích HTML 5, kde jej demonstrativně využívá ke sledování vlastních akcí.[5] V současné době je tedy v čistém HTML videu podporován pouze prohlížeč Safari. Pro ostatní prohlížeče existují různé varianty přehrávačů vytvořené v technologii Flash.

