Streaming media

Streaming media eller mediestrømme er media, der bliver konsumeret (læst, hørt, set) i takt med, at det bliver leveret. Det modsatte princip er, at man kopierer mediet, hvorefter man kan bruge det.

Streaming er selve det, at media bliver distribueret over et datanet – de fleste andre leveringssystemer er enten en signalstrøm (radio, TV medierne) eller en ikke-signalstrøm (bøger, videokassetter, lyd-CD).

Ordet "stream" kan oversættes til dansk som en strøm, og det bliver også anvendt som et verbum, hvor det betyder det at levere medier i "strømmende form".

Resten af denne artikel diskuterer streaming media-teknologier anvendt via datanet.

Historie

Forsøg på at præsentere media via computere, kan dateres helt tilbage til midten af det 20. århundrede. Der kom dog ikke de store fremskridt i flere årtier pga. den høje pris og begrænsende computerudstyr.

Akademiske eksperimenter i 1970'erne etablerede de grundlæggende begreber og muligheden af streaming media på computere.

Op gennem 1980'erne blev hjemmecomputere kraftige nok til at præsentere media. De vigtigste teknologiske problemstillinger var:

  • Have nok CPU-kraft og databusbåndbredde til at understøtte de fornødne datahastigheder
  • Understøtte lavforsinkelse computer-interrupts i styresystemet for at hindre buffer underløb

Dog havde datanettene stadig for lidt båndbredde, og media blev formidlet over ikke-streaming kanaler/dataprotokoller. I 1990'erne blev CD-ROMmen den mest udbredte måde at distribuere media til computere.

I de sene 1990'ere så man:

  • større datanet båndbredde – specielt ud til slutbrugeren
  • øget adgang til datanet – især internettet
  • Anvendelse af standardprotokoller og dataformater som f.eks. UDP, TCP/IP, HTTP og HTML
  • kommercialisering af internettet

Disse fremskridt i datanet kombineret med stærkere hjemmecomputere og moderne styresystemer gjorde streaming media praktisk og økonomisk muligt for almindelige forbrugere.

Teknologi

Et streaming media system består af mange gensidigt afhængige teknologier. Videokameraer og lydoptagere skaber de rå medier.

  • Editorer anvender composition tools til at kombinere de rå medier til afsluttede værk.
  • Servere gemmer media og gør dem tilgængelige for mange mennesker.
  • Klienter henter media fra serverne og får dem præsenteret til brugeren.

Servere og klienter gemmer media i forskellige filformater; de sender og modtager dem i forskellige streamingformater.

Servere og klienter kommunikerer via datanet via dataprotokolstandarder. Servere koder media til en datastrøm med henblik på sending; klienter modtager datastrømmen og afkoder den med henblik på præsentation; codec (COding + DECoding) udfører kodningen og afkodningen.

Media er i dag omfattende. Med dagens teknologi er hukommelsesmedier og transmissionspriserne stadig betydelige; derfor bliver media ofte datakomprimerede, når de gemmes eller sendes som datastrøm.

En media datastrøm kan sendes på anfordring (on demand) eller live. On demand datastrømme kan have været gemt på servere i lang tid og bliver sendt, når en bruger ønsker det. Live datastrømme er kun tilgængelig på samme tid som de aktuelle streamede begivenheder finder sted.

Dataprotokol udfordringer

Selve det at designe datanetprotokoller til at understøtte streaming media rejser mange problemstillinger.

Datagramprotokoller som f.eks. UDP sender media datastrømmen via datapakker kaldet datagrammer. Dette er simpelt og effektivt, men pakkerne går i en del tilfælde tabt eller bliver forvansket under transporten. Afhængig af protokollen og mængden af tab (se QoS), vil klienten klare en lødig præsentation pga. fejlkorrektions- og interpolationsteknikker, men i slemme tilfælde falder præsentationen ud permanent eller "kun" intervalvis.

RTP, RTSP og RTCP dataprotokollerne blev specielt designet til at datastrømme media over datanet. De er faktisk en overbygning til UDP.

TCP garanterer korrekt levering af hver en bit i media datastrømmen, men dette opnås via timeouts og genfremsendelse som er kompleks at implementere. Det betyder også at datastrømmen går midlertidig i stå i "længere tid", hvis forbindelsen falder kortvarigt ud. Dette håndteres og minimeres i dag i klienterne ved at gemme noget af datastrømmen i en buffer så udfaldene får mindre betydning for præsentationen.

En anden problemstilling er at firewalls mange gange som standard konfigureres til at blokere mange af de UDP-porte som mange gange anvendes, derfor falder systemerne som sidste udvej over på TCP. UDP-portene lukkes pt. pga. af kombinationen; øgelse af sikkerheden og fordi mange firewalls ikke understøtter medlæsning af media forhandlingerne (f.eks. i RTSP) med henblik på dynamisk åbning for de ønskede UDP-porte. Anvendes NAT, som faktisk anvendes de fleste steder i dag 2005, kræves endnu mere processering af routeren eller firewallen.

Unicast dataprotokoller sender en separat kopi af datastrømmen fra serveren til hver klient. Dette er simpelt, men kan lede til massiv udsendelse af ens data på datanettet. Multicast dataprotokoller sender kun en datastrøm ud på datanettet, som så duplikeres automatisk ud på alle datanetforbindelser, hvor der er brug for det. Dette er båndbreddemæssigt betydeligt mere effektivitet, men er mere kompliceret at implementere. Desuden skal alle netværk routere (og/eller netværksswitche) have understøttelse for multicast protokollerne som er nødvendige. I netudstyr som understøtter IPv6 er understøttelse af multicast standard.

I 2005 har de fleste af internettets routere ikke tilstrækkelig understøttelse af multicast protokoller og mange firewall blokerer dem. Multicast er mest praktiserbar for organisationer, som driver deres eget datanet som f.eks. universiteter.

Streaming media systemer

  • FFmpeg
  • Helix Community
  • Icecast
  • IceShare P2P Icecast protocol
  • MuSE
  • MPEG-4
  • Ogg
  • PeerCast
  • Peercasting P2P streaming
  • QuickTime
  • RealSystem
  • SHOUTcast
  • VideoLAN
  • Windows Media
  • Zina (Open-source alternative to Andromeda written in PHP)

Codecs

Dataprotokoller

Filformater

Beskrivelsesformater

  • SDP – Session Description Protocol
  • SMIL – Synchronized Multimedia Integration Language

Se også