HLS vs. DASH: Hvordan strømmeprotokoller faktisk fungerer
Før strømming fantes, betydde video på nett én ting: laste ned hele filen først og deretter spille den av. En video på 500 MB måtte lastes ned i sin helhet, selv om du bare ville se de første 30 sekundene. Strømmeprotokoller løser nettopp dette problemet: De deler videoen i små biter og spiller den av mens resten fortsatt lastes ned.
Segmentering: grunnlaget for strømming
Ta HLS (HTTP Live Streaming, utviklet av Apple), den vanligste protokollen: Serveren deler hele videoen i mange små filer, kalt segmenter. De er vanligvis 2–10 sekunder lange og pakkes som MPEG-TS eller fMP4. Serveren lager også en spillelistefil (.m3u8) som angir rekkefølgen og adressene til segmentene. Spilleren henter først spillelisten og laster deretter ned segmenter etter behov – når ett er ferdig, hentes det neste, nesten uten ventetid.
Adaptiv bithastighet: hvorfor avspilling ikke stopper på et svakt nettverk
HLS og DASH (Dynamic Adaptive Streaming over HTTP, fremmet av Microsoft og andre) klargjør flere sett med segmenter for samme video med ulike oppløsninger og bithastigheter – for eksempel ett sett for hver av 1080p, 720p og 480p – oppført i en hovedspilleliste. Spilleren overvåker nedlastingshastighet og buffernivå i sanntid: Den bytter til høyere bithastighet når nettet er godt og senker den når forbindelsen blir dårligere, slik at avspillingen fortsetter. Dette er strømming med adaptiv bithastighet (ABR), og forklarer hvorfor videoer automatisk blir uskarpe når du tar T-banen.
Hvorfor nedlasting av en m3u8-lenke ofte mislykkes
Når du laster ned en .m3u8-URL direkte, får du noen få kB med tekst – spillelisten, ikke selve videoen. For å lagre videoen må et verktøy analysere spillelisten, laste ned hvert segment og sette dem sammen i riktig rekkefølge. Derfor støtter mange nedlastere enten ikke HLS-video eller krever et eget trinn for sammenslåing av segmenter. TakeVid har innebygd segmentgjenkjenning og automatisk sammenslåing, slik at filen du laster ned, er komplett og klar til avspilling.
- HLS: fra Apple, bruker .m3u8-spillelister, har innebygd støtte i iOS/Safari og håndterer både direktesendinger og bestillingsvideo
- DASH: en åpen standard med .mpd-manifester, brukt i massiv skala av YouTube, Netflix og andre
- Begge kjører på vanlig HTTP, er CDN-vennlige og dominerer strømming i dag