Spring til indholdet

Spor 01 · Teknikken

Sådan virker streaming teknisk

Fra kodning og komprimering over segmenter og CDN til buffer og adaptiv bitrate: sådan når video og lyd frem til skærmen under streaming.

Opdateret

Illustration i ler: datapakker på fire spor af forskellig tykkelse, hvor én pakke skifter til et smallere spor
AI-genereret billede

Ved streaming bliver video og lyd komprimeret, delt i små stykker, lagt på servere tæt på seeren og hentet af afspilleren over almindelig webtrafik. Afspilleren henter lidt frem i tiden og vælger løbende en kvalitet, der passer til forbindelsen. Her er trinnene fra kilde til skærm.

Fra kilde til skærm i seks trin

  1. Kilden: originalt materiale fra kamera, studie eller arkiv.
  2. Kodning: materialet komprimeres med en codec og laves i flere kvalitetsniveauer.
  3. Segmentering: hvert niveau deles i segmenter på få sekunder, og en manifestfil beskriver, hvor de ligger.
  4. Distribution: segmenterne lægges på servere og kopieres ud til servere tæt på brugerne.
  5. Afspilleren: appen henter manifestet, henter segmenter, fylder en buffer og vælger kvalitet.
  6. Afkodning og visning: segmenterne afkodes og vises på skærmen, mens næste segmenter hentes.

Kodning og komprimering

Ukomprimeret video fylder enormt. Ifølge Wikipedia kommer ukomprimeret Full HD-video op over 1.000 Mbit/s. Derfor komprimeres video med en codec, som er en forkortelse af coder og decoder: et program eller kredsløb, der pakker billedet sammen hos udbyderen og pakker det ud hos seeren.

Komprimeringen er normalt tabsgivende. Den fjerner detaljer, som øjet eller øret sandsynligvis ikke opdager, og de fjernede data kan ikke genskabes. Resultatet er en markant mindre datamængde, men billedet kan blive blødt eller blokket, hvis bitraten er for lav i forhold til indholdet.

Codec Årstal Kendetegn
H.264 (AVC) Første version færdig i maj 2003 Meget udbredt, bl.a. på Blu-ray og i streaming.
HEVC (H.265) Godkendt af ITU-T 13. april 2013 Komprimerer ca. 25–50 pct. bedre end AVC ved samme kvalitet.
AV1 Frigivet 28. marts 2018 Udviklet af Alliance for Open Media og royaltyfri.

En nyere codec kan altså give samme kvalitet med færre data, men enheden skal kunne afkode den. Ældre enheder understøtter ikke altid de nyeste codecs. Mere om opløsning, HDR og lyd står under billed- og lydformater.

Segmenter og manifest

Ved adaptiv streaming laves det samme indhold i flere versioner med forskellig bitrate. Hver version opdeles i korte segmenter på få sekunder, og en manifestfil (en slags indholdsfortegnelse) lister de tilgængelige versioner og segmenter.

To udbredte metoder er:

  • HLS (HTTP Live Streaming): udviklet af Apple og udgivet i 2009. Metoden er beskrevet i RFC 8216 fra 2017.
  • MPEG-DASH: en international standard (ISO/IEC 23009-1) fra 2012.

Begge bygger på almindelig HTTP, som også bruges til websider. Det betyder, at trafikken kan gå igennem de firewalls og routere, der tillader almindelig webtrafik, og at den kan udnytte eksisterende web-cacher og CDN’er.

Servere og CDN

Streaming over internettet sender som udgangspunkt en separat kopi til hver seer (unicast). Det belaster serveren, og det skalerer dårligt. Et regneeksempel: hvis 1.000 personer samtidig ser en video med 5 Mbit/s fra den samme server, kræver det 5.000 Mbit/s, altså 5 Gbit/s, ud af den ene lokation.

Derfor bruges et CDN (content delivery network), et geografisk fordelt netværk af servere. Indholdet kopieres til kantservere (edge-servere) tæt på brugerne, så afstanden bliver kortere, belastningen fordeles, og populært indhold kan hentes fra en cache. Ifølge Wikipedia reducerer det både forsinkelse og båndbreddeomkostninger og øger tilgængeligheden.

Buffer og afspilning

Afspilleren henter segmenter lidt hurtigere, end de afspilles, og gemmer dem i en buffer. Bufferen udjævner udsving i forbindelsen. Ved indhold on demand er en kort ventetid ved start uproblematisk. Går bufferen tom, fordi data ankommer langsommere, end de afspilles, standser billedet, indtil der igen er nok data.

Ved interaktive anvendelser som videomøder er forsinkelsen derimod afgørende. Ifølge Wikipedia taber interaktive anvendelser kvalitet, hvis bufferforsinkelsen overstiger ca. 200 millisekunder. Her stilles der altså andre krav end ved film og serier.

Adaptiv bitrate

Afspilleren starter typisk med et lavt kvalitetsniveau, så afspilningen kommer hurtigt i gang. Derefter måler den, hvor hurtigt segmenterne hentes, og hvor fuld bufferen er, og skifter op, når forbindelsen tillader det, og ned, når den falder. Algoritmen kan bygge på hentehastighed, bufferniveau eller begge dele.

Det har tre konsekvenser:

  • Billedkvaliteten kan svinge under en film, selv om man ikke har rørt ved indstillingerne.
  • Afbrydelser undgås oftere, fordi afspilleren hellere vælger lavere kvalitet end at stå stille.
  • Dataforbruget følger kvaliteten. En højere bitrate bruger flere data pr. time. Se dataforbrug og båndbredde.

Ifølge Wikipedia er ulemperne, at metoden kræver ekstra lagerplads og kodning hos udbyderen, og at det kan være svært at holde kvaliteten ensartet over hele verden.

TCP og UDP

Data sendes over internettet i pakker. To transportmetoder bruges ofte:

  • TCP sørger for, at alle pakker når frem i rigtig rækkefølge, men kan gå i stå, mens tabte pakker sendes igen. Streaming over HTTP, som HLS og MPEG-DASH, bygger typisk på TCP.
  • UDP sender pakker uden kontrol af, om de når frem. Programmet skal selv opdage og håndtere tab, hvilket kan give korte udfald. Det bruges især til direkte kommunikation i realtid.

Live-streaming og forsinkelse

Ved live-streaming kodes og deles billedet i segmenter løbende, mens begivenheden finder sted. Forsinkelsen mellem det, der sker, og det, seeren ser, afhænger af kodningstiden, segmenternes længde og afspillerens buffer. Længere segmenter og en større buffer kan give en mere stabil afspilning, men også mere forsinkelse.

Kopibeskyttelse

Kommercielt indhold er ofte krypteret og beskyttet med DRM (digital rettighedsstyring). Ifølge Wikipedia findes der ikke én fælles åben standard for DRM til adaptiv streaming, så beskyttet indhold kan være afhængigt af, hvilken enhed og afspiller der bruges. Om reglerne for lovlig brug, se ophavsret og lovlig streaming.

Hvad kan der gå galt?

Det ses Mulig årsag
Billedet bliver sløret en stund Afspilleren har skiftet til en lavere bitrate, fordi hastigheden faldt.
Afspilningen standser og venter Bufferen er løbet tom, fordi data ankommer for langsomt.
Opstarten tager lang tid Forbindelsen er langsom, eller serveren er langt væk eller belastet.
Indholdet kan ikke afspilles på en ældre enhed Enheden mangler understøttelse af codec eller kopibeskyttelse.

Årsagerne er eksempler. Selve problemet kan også ligge i wifi-signalet, i en forbindelse, der deles med mange enheder, eller i udbyderens servere.

Læs videre

Spørgsmål og svar

Hvad er adaptiv bitrate?

Indholdet findes i flere kvalitetsniveauer, opdelt i korte segmenter. Afspilleren måler løbende, hvor hurtigt data ankommer, og skifter mellem niveauerne, så afspilningen kan fortsætte uden afbrydelser, når forbindelsen svinger.

Hvad er en buffer?

Bufferen er en lille mængde data, afspilleren henter på forhånd og holder klar. Den udjævner udsving i forbindelsen, så korte udfald ikke afbryder billedet. Løber bufferen tom, standser afspilningen.

Hvorfor bliver billedet nogle gange sløret under afspilning?

Ofte fordi afspilleren har skiftet til en version med lavere bitrate, efter at hastigheden på forbindelsen er faldet. Når hastigheden stiger igen, kan afspilleren skifte tilbage til en højere kvalitet.

Kilder