HLS ( HTTP Live Streaming ) är ett HTTP -baserat kommunikationsprotokoll för mediastreaming utvecklat av Apple som en del av programvaran QuickTime , Safari , MacOS och iOS . Arbetet bygger på principen att dela upp en hel ström i små fragment, sekventiellt nedladdade via HTTP. Flödet är kontinuerligt och kan teoretiskt vara oändligt. I början av sessionen laddas en spellista ner i M3U-format som innehåller metadata om befintliga underströmmar [1] .
Apple formaliserade HLS som en "utkast till standard" [2] , och i augusti 2017 publicerades version 7 av dokumentet som RFC 8216 [3] .
Eftersom förfrågningar endast använder vanliga HTTP-transaktioner tillåter protokollet att flödet passerar brandväggar eller proxyservrar som tillåter HTTP-trafik, till skillnad från UDP -baserade protokoll som RTP . Det tillåter också att innehåll serveras via HTTP-servrar för allmänna ändamål som källa, samt att det levereras till konsumenter via befintliga CDN:er [4] .
HLS tillhandahåller också en standardkrypteringsmekanism som använder AES och en metod för säker leverans av nycklar över HTTPS , antingen genom auktorisering på enheten eller genom en HTTP-cookie . Tillsammans gör detta det möjligt att skapa enkla DRM-system .
HTTP Live Streaming använder en standardwebbserver för att distribuera audiovisuellt innehåll på begäran, men kräver speciell programvara för att möjliggöra realtidsöverföring av innehåll.
Server del Kodar och lindar inkommande media i ett format som lämpar sig för leverans. Vidare förbereds materialet för distribution genom segmentering. Media segmenteras i fragment (bitar) och en indexfil (spellista).Det finns två driftsätt för HLS - "on demand" och livesändning. I läget "on demand" innehåller spellistan länkar till alla fragment från det första till det sista. I livestreaming-läge innehåller spellistan endast länkar till de senaste fragmenten, och vid efterföljande anrop till spellistan kommer fragmenten att ändras för att återspegla det aktuella tillståndet för sändningen.
HLS ger stöd för adaptiv bithastighet , denna teknik ger närvaron av flera samtidigt tillgängliga strömmar, som var och en kan innehålla samma innehåll, kodat med olika bithastigheter , samt ha andra olika egenskaper. När den spelar kan klienten välja bland ett antal tillgängliga strömmar, vilket gör att sessionen kan anpassas till de externa överföringsförhållandena över nätverket.
På WWDC 2016-konferensen tillkännagav Apple [5] införandet av byte-range-adressering för fragmenterade MP4 - filer (fMP4), vilket gör det möjligt att spela upp innehåll via HLS utan att tillgripa multiplexering i MPEG-2-transportströmmen . Branschexperter har lovordat detta som ett stort steg mot interoperabilitet mellan HLS och MPEG-DASH [6] [7] .
På WWDC 2019-konferensen tillkännagavs Low Latency HLS-teknologin [8] - utvecklingen av HLS-specifikationen, som tillåter överföring av mediadata med låg latens. Nya funktioner inkluderar partiella segment, spellistdelta, returnerande segment via HTTP/2 och andra ändringar.