Streaming media ellermediestrømme ermedia, der bliverkonsumeret (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 etdatanet – 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.
Forsøg på at præsentere media via computere, kan dateres helt tilbage til midten af det20. århundrede. Der kom dog ikke de store fremskridt i flere årtier pga. den høje pris og begrænsendecomputerudstyr.
Akademiske eksperimenter i1970'erne etablerede de grundlæggendebegreber og muligheden af streaming media på computere.
Op gennem1980'erne blev hjemmecomputere kraftige nok til at præsentere media. De vigtigste teknologiske problemstillinger var:
- Have nok CPU-kraft ogdatabusbåndbredde til at understøtte de fornødne datahastigheder
- Understøtte lavforsinkelse computer-interrupts istyresystemet for at hindre buffer underløb
Dog havde datanettene stadig for lidt båndbredde, og media blev formidlet over ikke-streaming kanaler/dataprotokoller. I1990'erne blevCD-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ærinternettet
- Anvendelse af standardprotokoller ogdataformater som f.eks. UDP,TCP/IP,HTTP ogHTML
- 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.
Et streaming media system består af mange gensidigt afhængigeteknologier.Videokameraer oglydoptagere skaber de rå medier.
- Editorer anvendercomposition 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 forskelligefilformater; de sender og modtager dem i forskelligestreamingformater.
Servere og klienter kommunikerer viadatanet viadataprotokolstandarder. Servere koder media til endatastrø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) ellerlive. 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.
Selve det at designe datanetprotokoller til at understøtte streaming media rejser mangeproblemstillinger.
Datagramprotokoller som f.eks.UDP sender media datastrømmen viadatapakker kaldetdatagrammer. 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 (seQoS), vil klienten klare en lødig præsentation pga.fejlkorrektions- oginterpolationsteknikker, men i slemme tilfælde falder præsentationen ud permanent eller "kun" intervalvis.
RTP,RTSP ogRTCP 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 atfirewalls 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. kombinationen; forø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. AnvendesNAT, 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 allenetværk routere (og/ellernetværksswitche) have understøttelse for multicast protokollerne som er nødvendige. Inetudstyr som understøtterIPv6 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 fororganisationer, som driver deres eget datanet som f.eks.universiteter.
- SDP – Session Description Protocol
- SMIL – Synchronized Multimedia Integration Language