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 možné jej nasadit na již existující infrastruktury a bez problému nechat proudit přes firewally či proxy servery. Možné je také nasazení 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.

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 čtvrté verzi protokolu byla přidána možnost videa nechat v jednom souboru 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ů potřebných 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 na různých serverech 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 i podporu 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 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.

Reference editovat

  1. Internet-Draft HTTP Live Streaming 13
  2. m3u8 segmenter
  3. HTTP Live Streaming Overview
  4. Android 3 Honeycomb highlights. developer.android.com [online]. [cit. 2011-11-07]. Dostupné v archivu pořízeném dne 2011-02-16. 
  5. Apple Events