HLS ( HTTP Live Streaming ) este un protocol de comunicare media streaming bazat pe HTTP , dezvoltat de Apple ca parte a software-ului QuickTime , Safari , MacOS și iOS . Lucrarea se bazează pe principiul împărțirii unui întreg flux în fragmente mici, descărcate secvenţial prin HTTP. Fluxul este continuu și teoretic poate fi infinit. La începutul sesiunii , o listă de redare este descărcată în format M3U, care conține metadate despre substream-urile existente [1] .
Apple a oficializat HLS ca „proiect de standard” [2] , iar în august 2017 versiunea 7 a documentului a fost publicată ca RFC 8216 [3] .
Deoarece cererile folosesc doar tranzacții HTTP standard, protocolul permite fluxului să traverseze firewall -uri sau servere proxy care permit traficul HTTP, spre deosebire de protocoalele bazate pe UDP , cum ar fi RTP . De asemenea, permite ca conținutul să fie servit prin servere HTTP de uz general ca sursă, precum și să fie livrat consumatorilor prin intermediul CDN -urilor existente [4] .
HLS oferă, de asemenea, un mecanism de criptare standard folosind AES și o metodă pentru livrarea în siguranță a cheilor prin HTTPS , fie prin autorizare pe dispozitiv, fie printr-un cookie HTTP . Împreună, acest lucru face posibilă crearea unor sisteme DRM simple .
HTTP Live Streaming utilizează un server web standard pentru a distribui conținut audiovizual la cerere, dar necesită un software special pentru a permite transmiterea în timp real a conținutului.
Partea serverului Codifică și împachetează media primită într-un format potrivit pentru livrare. În plus, materialul este pregătit pentru distribuție prin segmentare. Media este segmentată în fragmente (bucăți) și un fișier index (listă de redare).Există două moduri de funcționare a HLS - „la cerere” și transmisie în direct. În modul „la cerere”, lista de redare conține link-uri către toate fragmentele de la primul la ultimul. În modul de streaming live, lista de redare conține doar link-uri către ultimele fragmente, în plus, la apelurile ulterioare către lista de redare, fragmentele se vor schimba pentru a reflecta starea curentă a difuzării.
HLS oferă suport pentru rate de biți adaptive , această tehnică prevede prezența mai multor fluxuri disponibile simultan, fiecare dintre acestea putând conține același conținut, codificat la rate de biți diferite , precum și având alte caracteristici diferite. Pe măsură ce se redă, clientul poate alege dintr-un număr de fluxuri disponibile, permițând sesiunii să fie adaptată la condițiile de transmisie externă prin rețea.
La conferința WWDC 2016, Apple a anunțat [5] includerea adresei pe intervalul de octeți pentru fișierele MP4 fragmentate (fMP4), care permite redarea conținutului prin HLS fără a recurge la multiplexarea în fluxul de transport MPEG-2 . Experții din industrie au lăudat acest lucru ca fiind un mare pas către interoperabilitatea între HLS și MPEG-DASH [6] [7] .
La conferința WWDC 2019 a fost anunțată tehnologia Low Latency HLS [8] - dezvoltarea specificației HLS, care permite transmiterea datelor media cu latență scăzută. Noile funcții includ segmente parțiale, delta liste de redare, segmente returnate prin HTTP/2 și alte modificări.