HLS vs. DASH: Sådan fungerer streamingprotokoller faktisk
Før streaming fandtes, betød det én ting at se video online: download først hele filen, og afspil den derefter. En video på 500 MB skulle ankomme fuldt ud på din enhed, selvom du kun ville have de første 30 sekunder. Streamingprotokoller løser præcis dette problem: de skærer videoen i små bidder og afspiller den, mens resten stadig downloades.
Segmentering: Byggestenen til streaming
Tag HLS (HTTP Live Streaming, skabt af Apple), den mest almindelige protokol: Serveren opdeler en fuld video i et stort antal små filer, kaldet segmenter, typisk 2-10 sekunder lange og pakket som MPEG-TS eller fMP4. Den genererer også en afspilningslistefil (.m3u8), der registrerer rækkefølgen og adresserne på segmenterne. Afspilleren henter først afspilningslisten og downloader derefter segmenter efter behov - afslut én, hent den næste, næsten uden at vente.
Adaptiv bithastighed: Hvorfor afspilning ikke går i stå på et svagt netværk
HLS og DASH (Dynamic Adaptive Streaming over HTTP, udviklet med støtte fra Microsoft og andre) forbereder begge flere sæt segmenter til den samme video med forskellige opløsninger og bithastigheder - f.eks. et sæt hver til 1080p, 720p og 480p - alle opført i en master-playliste. Afspilleren overvåger downloadhastighed og bufferniveauer i realtid: den skifter til en højere bitrate, når netværket er godt og trapper ned, når det forringes, hvilket holder afspilningen kontinuerlig. Dette er adaptiv bitrate streaming (ABR), og det er grunden til, at videoer automatisk bliver slørede, når du kører med metroen.
Hvorfor det så ofte mislykkes at downloade et m3u8-link
Når du downloader en .m3u8-URL direkte, får du et par KB tekst - afspilningslisten, ikke selve videoen. For rent faktisk at gemme videoen skal et værktøj parse afspilningslisten, downloade hvert segment og sy dem sammen igen i rækkefølge. Det er grunden til, at mange downloadere enten slet ikke understøtter HLS-video eller kræver et dedikeret "flet segmenter"-trin. TakeVid har registrering af segmenter og automatisk fletning indbygget, så det, du downloader, er en komplet fil, der er klar til afspilning.
- HLS: fra Apple, bruger .m3u8-afspilningslister, der er indbygget understøttet af iOS/Safari, håndterer både live og on-demand
- DASH: en åben standard med .mpd-manifester, der bruges i massivt omfang af YouTube, Netflix og andre
- Begge kører på almindelig HTTP, er CDN-venlige og dominerer streaming i dag