Streaming media
Netwerken project Charlier Bart Verstraete Kevin 3MCT 2003/2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Hoofdstuk 1: Wat is streaming? 1.1 Streaming Vroeger moest men eerst het volledige bestand downloaden op de harde schijf voor je het kon bekijken.
Nu kan je met de streaming technologie kijken of luisteren naar je files terwijl ze nog aan het downloaden zijn.
Streaming is dus een technologie die ons toelaat om op aanvraag of realtime geluid- en videobestanden te verzenden over een netwerk. Met streaming media wordt bedoeld dat het af te spelen bestand ontvangen wordt in een continue stroom van data, terwijl tegelijkertijd het al ontvangen deel van het bestand wordt afgespeeld voor de gebruiker. Men hoeft dus niet te wachten tot het gehele bestand gedownload is om te beginnen met het afspelen van het bestand.
figuur 1.1
De werking van streaming
De streaming bestanden staan op een remote server (dedicated server) opgeslagen. Streaming bestanden worden met een player bekeken. Wanneer de gebruiker een streaming bestand wil bekijken of beluisteren, wordt er een verbinding geopend tussen de server en de pc van de gebruiker. Over deze verbinding wordt een constante datastroom gestuurd. Deze datastroom wordt opgevangen door de pc van de gebruiker en opgeslagen in een buffer. Deze buffer zorgt ervoor dat eventuele haperingen in de datastroom opgevangen kunnen worden, waardoor het streaming bestand vloeiend wordt afgespeeld. 3MCT
2/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
1.2 Voordelen & toepassingen Voordelen: • Reductie van de laadtijd aangezien het afspelen en downloaden tegelijkertijd gebeurt. • Er wordt weinig schijfruimte in beslag genomen doordat het bestand niet fysiek opgeslagen wordt op de harde schijf van de pc van de gebruiker. • Met de streaming technologie kunnen honderden gebruikers op hetzelfde tijdstip toegang krijgen tot 1 bepaalde mediafile. Toepassingen: • In het onderwijs waar interactieve lessen kunnen gegeven worden. • Studenten kunnen dan ook eens een les opnieuw bekijken. • Streaming technologie kan eigenlijk overal gebruikt worden waar organisaties willen gebruik maken van video- en geluidsbestanden via een netwerk. • Streaming kan ook gebruikt worden om productdemonstraties te geven aan klanten. 1.3 Nadelen en voorwaarden Het gebruik van streaming klinkt eenvoudig, maar in werkelijkheid is dit allemaal niet zo simpel. Er moet aan een aantal eisen voldaan worden om streaming te kunnen toepassen: Voorwaarden: • Tijdens het afspelen van een video- of geluidsbestand is er een constante verbinding nodig tussen de server en de pc van de gebruiker. Tevens is het van belang dat de datapakketjes in de juiste volgorde worden afgespeeld. • Er moet voldoende bandbreedte beschikbaar zijn op de verbinding tussen de server en de cliënt. Zeker als er een hoge kwaliteit wordt verwacht. Hoe hoger de vereiste kwaliteit, hoe hoger de benodigde bandbreedte zal moeten zijn. Nadelen: • Hoge investeringen nodig om streaming te ondersteunen. Dure streamingservers • Op dit moment is er nog niet echt een standaard op het gebied van streaming, waardoor er geen eenduidig formaat bestaat voor streaming bestanden. Vaak moeten er extra plug-ins gedownload worden. • Het gebruik van streaming levert op dit moment vaak problemen op met de firewalls die organisaties hebben ter bescherming van hun interne netwerk. De voordelen om te streamen met een streamingserver zijn: • Het dynamisch verhogen of verlagen van het aantal verstuurde bits per seconde. (bitrate is afhankelijk van de beschikbare bandbreedte tussen zenden en ontvanger). • Aanbieden van alternatieve transport protocollen naast http voor het verbeteren van de datadoorvoer. • Het genereren van statische feedback over het gebruik van je streaming site.
3MCT
3/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
1.4 De 4 stappen in het streaming media proces De eerste stap is het verkrijgen en bewerken van de media die gestreamd moet worden. De volgende stap is het coderen en comprimeren van de gedigitaliseerde beelden. Het verzenden van de gecomprimeerde gegevens is de derde stap in het proces. De laatste stap is het decomprimeren en afspelen van de beelden.
Figuur 1.2
Het proces van streaming media
Verkrijgen en bewerken Het bronmateriaal kan zowel een live presentatie als een vooraf opgenomen uitzending zijn. De meeste hedendaagse streaming applicaties zijn vooraf opgenomen. Dit maakt streaming dan ook zo interessant. Videobeelden kunnen opgenomen worden m.b.v. steeds goedkoper wordende analoge of bij voorkeur digitale videocamera’s. Andere bronnen zijn videobanden en gedigitaliseerde foto’s. De extra geluidsfragmenten worden gedigitaliseerd m.b.v. de ruimschoots aanwezige software. Het bewerken van video en audio gebeurt meestal met programma’s zoals adobe premiere 5.1. Geavanceerdere programma’s zoals adobe after effects bieden dan extra mogelijkheden.
Coderen en comprimeren Het uiteindelijk bekomen resultaat is gedigitaliseerd videomateriaal dat veel te groot is om via het internet naar gebruikers te versturen. Dit bestand moet dus eerst gecodeerd en gecomprimeerd worden naar een bepaald formaat, zoals Real Media of MPEG, om het flink te verkleinen en geschikt te maken om gestreamd te worden over het internet. Dit proces van coderen en comprimeren gebeurt met een ‘codec’.
3MCT
4/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Een codec is een gespecialiseerd stukje software of hardware dat de grootte van videobestanden, en daardoor ook de beeldkwaliteit, drastisch verkleint. Naast de gebruikte codec is de beeldkwaliteit echter ook afhankelijk van de bitrate, de hoeveelheid bits die per seconde over een netwerk verstuurd worden. De bitrate wordt bepaald door volgende factoren: • Aantal beelden per seconde • Kleurdiepte van de beelden • Afmeting van de beelden Verzenden Er zijn 2 manieren om de gecomprimeerde videobeelden te verzenden: • Server-less Hierbij wordt de standaard web-server gebruikt en het http-protocol om de videobeelden naar de gebruiker te streamen. Voordelen: o Geen dure video-server aanschaffen. o Geen extra tijd besteden aan het beheren en gebruiken van zo’n server. Nadelen: o Enkel geschikt voor bedrijven die een bescheiden aantal streams naar de gebruikers aanbieden. • Server-based Deze manier is geschikter voor bedrijven die grote hoeveelheden streams naar gebruikers sturen. Hier wordt gebruik gemaakt van een gespecialiseerde server. Deze biedt geoptimaliseerde routines om de grote multimediabestanden van de harde schijf te lezen en de keuze tussen verschillende transportprotocollen (UDP/TCP) te maken. Voordelen: o Biedt een hogere videokwaliteit aan. o Er kan een grotere hoeveelheid gebruikers ondersteund worden. o Maakt efficiënter gebruik van de beschikbare bandbreedte. Bij de keuze tussen een serverless en server-based aanpak is het belangrijk welke protocollen er gebruikt worden voor het verzenden van het streaming bestand van de server naar de cliënt. Een andere keuze met betrekking tot gebruik van de bandbreedte is de keuze tussen unicast en multicast. • Unicast: Hier wordt elke stream naar een gebruiker apart over het netwerk verzonden. Als deze gebruikers op hetzelfde netwerksegment zitten, worden de videobeelden dus tweemaal verstuurd. • Multicast Hier wordt dit probleem opgelost en wordt er veel efficiënter gebruik gemaakt van de beschikbare bandbreedte door 1 datastroom naar de ontvangers te sturen en pas een kopie van de datastroom te maken op het moment dat de wegen naar de verschillende ontvangers zich splitsen.
3MCT
5/21
2003-2004
Charlier Bart Verstraete Kevin
Figuur 1.3
NW1
Streaming project
Unicast of multicast
Decomprimeren en afspelen Als laatste stap worden de ontvangen gecomprimeerde videobestanden gedecomprimeerd en daarna afgespeeld. Hiervoor wordt meestal een ‘player’ gebruikt. Hiermee wordt de binnenkomende datastroom gedecomprimeerd en gedecodeerd. Elk bestandsformaat heeft een eigen player waarmee de bestanden afgespeeld kunnen worden, maar de meeste players ondersteunen verschillende bestandsformaten.
3MCT
6/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Hoofdstuk 2: De verschillende streaming codecs We leggen hier voornamelijk de nadruk op codecs die gedigitaliseerd videomateriaal geschikt maken om gestreamd te worden over het internet. Deze codecs verminderen door codering en compressie, naast de grootte van de videobestanden, ook de beeldkwaliteit ervan. Deze vermindering van beeldkwaliteit is van groot belang voor het succesvol kunnen streamen van het bestand. Je kan ook het onderscheid maken tussen hardware- en software codering: • Hardware: is sneller, maar minder uitbreidbaar • Software : deze codecs zitten standaard in de architecturen zoals quicktime, windows mediaplayer,… Voor hardware codering is er een speciale processor/kaart vereist
Figuur 2.1
De werking van een codec
Het kwaliteitsverlies van het gecomprimeerde videobestand is afhankelijk van de gebruikte codec. Door de focus op het internet met betrekking tot streaming media is het van belang dat de codecs aan de volgende eisen voldoen: • Robuustheid de codec moet het verlies van pakketjes met videogegevens tot op een zekere hoogte kunnen opvangen. • Statische schaalbaarheid de codec moet bij het coderen de mogelijkheid bieden de compressie te verhogen of te verlagen om de videobeelden voor verschillende bitrates te coderen. • Dynamische schaalbaarheid de codec moet het mogelijk maken de kwaliteit van de stream van videobeelden te verlagen om het doorgaan van de verzending te garanderen als de bandbreedte tijdens het streamen kleiner wordt. (= multiple bitrate encoding) • Snelheid de codec moet snel kunnen comprimeren en decomprimeren.
3MCT
7/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Streaming Video Codecs MPEG(Moving Pictures Expert Group) MPEG is in 1988 opgericht om standaarden te ontwikkelen voor codering en compressie van audio en video en de opslag en transmissie ervan. Vervolgens werden de standaarden MPEG-1, MPEG-2 en MPEG-4 ontwikkeld. MPEG-1 Deze codec levert een VHS videokwaliteit (standaard videocassette) met 30 fps. Voor de codering is er dure hardware vereist en de decodering kan softwarematig maar vergt enorm veel capaciteit van de CPU. MPEG-1 is niet aan te raden voor streaming want: Gebrek aan schaalbaarheid Zeer gevoelig voor verloren pakketjes. Dit komt omdat bij deze codec het volgende frame bepaald wordt door het voorgaande. Indien er dus een bepaald frame wegvalt, krijg je problemen. MPEG-1 is vooral ontworpen voor opslagmedia MPEG-2 Biedt ondersteuning voor een hogere resolutie Verbeterde audio-mogelijkheden Biedt video aan in digitale TV kwaliteit Vereist nog duurdere hardware voor codering en decodering Biedt 3 soorten schaalbaarheid: * Signal to noise ratio(SNR) * ruimtelijke en temporale compressie * data partitionering Ook niet voor geschikt voor streaming Ook hier is video het geschikte bronmateriaal MPEG-4 Bij MPEG-4 kan de maker de verschillende videoparameters van de content zelf specificeren. De genoemde scaling qua data-rates geeft een variatie tussen narrow en broadband. Een webcaster kan zo het aanbod van de streaming video exact gelijk stellen aan de bandbreedte en de mogelijkheden van de inloggende kijkers. De MPEG-4 encoder zet singlepass variabele bit raters (VBR' s) in om continu de best mogelijke beeld & geluidskwaliteit bij de maximum transfer-rate en hoogst mogelijke encodering te bereiken. Kleurmanagement en bewegingsoptimalisatie zijn standaard aan boord. Apple noemt bij QT uiteraard de voordelen van de G4 maar ook op een snelle Pentium 4 zal MPEG-4 en de QT player best aan zijn trekken komen. Een probleem was voorheen dat videoservers allerlei versies van hetzelfde bronmateriaal moesten opslaan om de verschillende playbacksituaties te bedienen. Bijvoorbeeld de lage en hoge resolutie versies, of narrow en broadband-versies. Bij MPEG-4 is er slechts één bronformaat voor alle verschillende media, transmissiesnelheden, bandbreedtes en verschillende playbackdevies op hun servers voldoende. Dat scheelt flink in de benodigde opslagcapaciteit per bronbestand.
3MCT
8/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
WMV(Windows Media Video) De Windows Media Encoder is een real-time encoder die gebruikt kan worden om videostreams te maken die later via streaming verstuurd kunnen worden over een netwerk, hetzij vanaf een standaard HTTP-server, hetzij van een speciale streaming server. De encoder biedt de gebruiker een aantal mogelijkheden om streaming bestanden te maken. Ten eerste is er de simpele manier. Hierbij hoeft de gebruiker alleen maar aan te geven wat de maximale verbinding zal zijn van de gebruikers van de bestanden, zoals een 56.6 Kb modemverbinding. Voor meer ervaren gebruikers biedt het programma ook de mogelijkheid om zelf te bepalen welke codec gebruikt wordt voor het coderen. Gekozen kan worden uit de op de computer van de gebruiker aanwezige codecs. Het uiteindelijke bestandsformaat is het Advanced Streaming Format (ASF), een door Microsoft ontwikkeld bestandsformaat voor streaming bestanden. Tevens kunnen standaardformaten gebruikt worden, zoals WAV-bestanden die later omgezet kunnen worden om ze geschikt te maken voor streaming. In de nieuwste versie van de encoder kan gebruik worden gemaakt van Intelligent Streaming Multi Data Rate encoding. Dit betekent dat verschillende codecs voor verschillende bandbreedtes kunnen worden samengevoegd in 1 bestand, in plaats van voor elke codec een apart bestand te moeten maken. DivX
Ten eerste is DivX een gepatenteerde MPEG-4 digitale video technologie gecreeerd door DivxNetworks,Inc. Video' s die geencodeerd zijn met DivX technologie bestaan onder een van de hoogste digitale video kwaliteiten die er beschikbaar zijn?( en met een relatief kleine groote ).
DivX is een globaal fenomeen. Meer dan 30 miljoen mensen over de hele wereld hebben DivX technologie gedownload en gebruikt sinds de lancering ervan, en duizenden DivX video' s worden dagelijks bekeken op het internet. DivX wordt al snel het formaat bij keuze voor digitale video professionals en amateurs die hun video' s willen verspreiden met de beste visuele qualiteit en een kleine file grootte, hierdoor krijgt DivX de mooie bijnaam:"De MP3 van de video". Ten aanvulling is DivX de breedst verspreide MPEG-4 compatibele technologie die vandaag beschikbaar is. DivX technologie is compatibel met de MPEG-4 video compressie standaard, dit laat het toe om MPEG-2 video' s te compresseren tot een achtste van de originele grootte. DivX is in staat om een volledige MPEG-4 bitstreams te creëren. En ten laatste is er DivXNetworks,Inc., het bedrijf achter de technologie. Eerst werd het bedrijf gestart als Project Mayo, DivXNetworks is gegroeid in een grote groep van internationale technologen gestationeerd in San Diego, California, USA. DivXNetworks bevat ook de leden van het DivX Advanced Research Centre (DARC), de ingenieurs die de DivX codec hebben ontwikkeld en die ook streven naar de beste video compressie.
3MCT
9/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Real Video Voor het coderen en decoderen van de videobeelden wordt de RealMedia codec gebruikt. Deze codec is ook door RealNetworks ontworpen. Gebruikers van de software oplossing van RealNetworks kunnen bij het coderen van de videobeelden kiezen voor coderen voor bepaalde vaste framerates, bijvoorbeeld 15 frames per seconde, of voor het optimaliseren van de framerate. Het coderen voor vaste framerates wordt opgevangen in de zogenaamde ' templates'waar de gebruiker voor kan kiezen. Deze templates zijn ook opgesteld voor bepaalde bandbreedtes, zoals 28K8 of IDSN. De oplossingen van RealNetworks bieden ook dynamische schaalbaarheid; hiervoor wordt gebruik gemaakt van ' stream thinning' , het dynamisch aanpassen van de bandbreedte in het geval van congestie op de Internetverbinding. Hiervoor worden aan de server-kant de minder belangrijke details weggelaten, alhoewel hierdoor de beeldkwaliteit verminderd wordt. Tevens is het mogelijk om hele frames weg te laten in het geval van grote drukte. De RealPlayer is echter in staat deze verliezen enigszins te compenseren door gebruik te maken van ' smudging' ; hierbij worden de overgangen tussen frames als het ware ' verzacht' door er frames tussen te voegen die ' middelen' tussen de twee omringende frames en de overgangen minder schokkend maken. Xvid
Xvid is een open source video codec project dat gelanceerd werd in 2001 als opvolging van Project Mayo' s open source divX codec.
Origineel was de divX ;-) codec niet gelanceerd van niets, maar was het een gehackte versie van Microsofts WMV video codec. Deze versie (beter bekend als divX; -) 3.11 alpha) was de laatste officiële versie van de gekraakte codec, het werd snel zeer populair onder de videofreaks over de hele wereld. Achter het succes, begonnen groepen van mensen, waarschijnlijk de hacker achter de divX ;-) codec, met het ontwikkelen van een legale versie van de codec die dan een echte codec zou zijn en niet een hack van een bestaande codec. Ze lanceerden een open source project, bijgenaamd "Project Mayo" (also known as OpenDivX) om deze codec te ontwikkelen. Achter een tijdje begon de codec te groeien, de originele ontwikkelaars willden het verder trekken met hun codec en starten een bedrijf genaamd DivXNetworks die begonnen met het ontwikkelen van hun eigen closed source versie, gebasseerd op het werk van Project Mayo. Eerst werd deze codec gelanceerd onder de naam divX 4( nu zit men aan divX 5...). Nu, de open source mannen wilden hun werk niet laten vallen die ze in Project Mayo hadden gedaan en ze bleven werken aan de ontwikkeling van de codec en zo werd Xvid geboren.
3MCT
10/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Sorenson Video De Sorenson Video codec wordt gebruikt voor het coderen en decoderen van de videobeelden. Deze codec is niet door Apple ontworpen, maar door Sorenson Vision Inc. De Sorenson Video codec wordt echter wel exclusief door Apple gebruikt in haar Quicktime oplossingen. De Sorenson Video codec is de vervanger van de Cinepak codec die in de eerdere versies van Quicktime gebruikt werd. Deze Cinepak codec ondersteunde echter geen streaming. De gebruiker wordt tevens de mogelijkheid geboden de videobeelden te coderen met de H.263 en de H.261 codec.
Streaming Audio Codecs AAC Audio(Advanced Audio Coding) Advanced Audio Coding (AAC) moet de MPEG-4 tegenhanger worden van het soms tegenvallende MP3 audio-formaat. MP3 is op de keper beschouwd een MPEG-1 autostandaard. Ondanks alle pretenties biedt MP3 geen echte audio-CD kwaliteit en ontstaan er bij de compressie soms toch nog forse mediabestanden. Anders dan MP3 ondersteunt AAC multi-kanaals audio tot maximaal 48 full frequency channels en kunnen er sampling-rates tot 96 KHz gebruikt worden. AAC biedt een efficiëntere datacompressie (40% kleiner) en een geluidskwaliteit die de ongecomprimeerde Audio-CD moet benaderen. Of dat helemaal lukt hangt van de gebruikte Internetbandbreedte en het systeem af. Over de PC-speakers klinkt het allemaal best goed maar het origineel op een top-hifi-set komt daar met gemak bovenuit. Over het Internet verslaat AAC MP3 bij 96 KBps met glans. Op 128 KBps stereo valt eigenlijk geen verschil met het ongecomprimeerde audiobronbestand te horen. Voor doorsnee radio-uitzendingen is 64 KBps voldoende. Tot op heden is broadcasting op 320 KBps voor een 5.1-channel audio-programma mogelijk gebleken. Voor video, webcasting en personal audio kan AAC een winnaar worden. Met name omdat bij dezelfde bandbreedte een beter audiosignaal met de videoinformatie mee-gecodeerd kan worden. Inmiddels zijn er al diverse AAC audiobibliotheken op Internet te beluisteren. AC3(Audio Coding 3) AC3 is dezer dagen een synoniem voor Dolby Digital. Dolby Digital is een geavanceerde audio compressie techniek die toelaat muziek te coderen in 6 verschillende kanalen (5.1 sound - 5 speakers, 1 subwoofer). Dolby Digital (DD) Surround AC-3 werkt in totaal met 6 gescheiden kanalen. Deze kanalen zijn strikt gescheiden, hiermee gaat de techniek een stap verder dan Dolby Surround Pro-Logic (DSPL). De eerste 5 kanalen krijgen de volledige audiobreedte van 20 - 20 000Hz. Bij Pro Logic krijgen de achterste kanalen een heel stuk minder, nl. 120 - 7000hz, dit zijn veel minder hoge en lage tonen. Bij DD zijn de achterkanalen stereo, bij DSPL is dit echter mono. Bij DD is het mogelijk om op ieder kanaal een sub-woofer aan te sluiten, dit zorgt voor een nog beter en overweldigend 3D sound effect!
3MCT
11/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Het zesde kanaal bij DD noemt met het LFE kanaal, dit kanaal zorgt voor de lage tonen waardoor grote film effecten als ontploffingen, botsingen, etc ... een ongelofelijke indruk maken. Omdat dit kanaal enkel zware tonen moet kunnen weergeven heeft dit kanaal een beperkte bandbreedte (3 - 120Hz). Dit kanaal noemt men het ".1"-kanaal genoemd. (vb: 5.1, 6.1). Alle 6 kanalen (5.1) worden digitaal verwerkt, maw alle signalen vanaf de mengtafel worden doorgestuurd zonder conversieverlies. (digitaal analoog of analoog - digitaal). Bij DSPL verloopt alles nog analoog. Opmerkelijk is dat het Dolby Digital (AC-3) signaal minder "ruimte" nodig heeft dan één audiokanaal op de bekende CD. Deze uitgekiende aanpak maakt dat de Dolby Digital Surround (AC-3) informatie gemakkelijk opgeslagen kan worden op dragers als de DVD of andere digitale bronnen als LaserDisc, CD en DAT. Dolby Digital (AC-3) wordt sinds 1992 gebruikt voor het coderen van films en Dolby heeft er voor gezorgd dat het systeem als norm is aanvaard. De Dolby Labs hebben wereldwijd een stevige vinger in de pap als het om baanbrekende audioontwikkelingen gaat. MP3
De MP3-codec is de meest bekende en meest gebruikte compressiestandaard voor audio. MPEG staat voor ' Moving Picture Experts Group' , dit is een groep audio- en videoprofessionals die de standaards samenstellen. Layer III staat voor de mate van complexiteit van de comprimatie (laag IV is trouwens ook al uit). Elk van deze compressielagen is meer complex dan zijn voorloper maar geeft ook een betere compressie-verhouding. Laag 1 heeft een ratio van 1:4, laag 2 tussen 1:6 en 1:8 en met de derde laag bekom je al een verhouding tussen 1:10 en 1:12. De uitvinders van de techniek horen bij het Fraunhofer-Gesellschaft uit Duitsland dat 10 jaar geleden begon met het uitzoeken van mogelijke datacompressietechnieken in samenwerking met Duitse universiteiten. Zonder compressie zijn geluidsbestanden veel te groot: 44.1 kHZ 16-bit Stereo audio maakt 176,400 bytes data per seconde. Zo bekom je een gigantische 10,584,000 bytes per minuut, dus ongeveer 10 MB. Dit is de verklaring dat een 650 MB CD-ROM maar 74 minuten audio kan bevatten in dit formaat. MP3 verkleint de grootte door encoding. Bij JPEG (compressie voor afbeeldingen) worden de stukken verwijdert die niet worden opgemerkt door het menselijke oog.
3MCT
12/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
MP3 volgt dezelfde aanpak: Als je het verschil niet kan horen als een stuk data er nu wel of niet is, kan je die gewoon verwijderen. De basisgedachte noemt men ' perceptual'of waarneembaar coderen. Dit heeft als resultaat dat de audio wordt opgeslaan zoals men het hoort en dus niet zoals het is. Om te beslissen welke informatie verwijderd moet worden, bekijkt met welke data er overbodig of irrelevant is. Overbodige information is gemakkelijker te verwijderen omdat dit gewoon de data verwerpt dat een kopie is. Ook alles die een hogere frequency heeft dan 22.05 kHz gooit men weg omdat dit buiten het bereik valt van het menselijk gehoor.
Irrelevante data is meer complex om te beoordelen. Wat er gebeurt is dat de luidere frequentie de minder luide maskeert. Van dit fenomeen maakt een Layer III compressor dankbaar gebruik, het wordt psycho-akoestisch maskeren genoemd. Bijvoorbeeld, een kuch in een stille kamer zal luider klinken dan een kuch achter een harde slag met de deur. Dit laat de MP3 encoding toe om deze minder waarneembare geluiden een lagere prioriteit te geven in het opname-proces. Zo zullen deze stukken minder bits toegekend krijgen waardoor de grootte weer wordt verkleind. RealAudio Realaudio is erg populair op het Internet voor streaming audio. De audio files beginnen al af te spelen voordat ze helemaal geladen zijn, waardoor je een veel snellere ervaring bij het spelen van de Guruhits muziek quiz krijgt. Een nadeel is dat de kwaliteit lager is dan bij Quicktime, en als je de clip nog eens wilt horen, deze steeds opnieuw moet geladen worden.
3MCT
13/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Hoofdstuk 3: De verschillende streaming protocollen. Protocollen worden door de server gebruikt voor het onderhouden van de communicatie met de verschillende cliënten die gebruik willen maken van de op de server aanwezige streaming bestanden. De protocollen bevinden zich op verschillende lagen: • Netwerklaag • Transportlaag • Applicatielaag
Figuur 3.1
Overzicht gebruikte protocollen binnen streaming
3.1 Protocollen in de transportlaag Een protocol in deze laag wordt gebruikt om informatie te versturen tussen 2 computers in een netwerk. Typische protocollen zijn TCP/UDP/RTP en VDP. Een eerste kenmerk van transportprotocol is of het connection-oriented of connenctionless (transaction-oriented) is.
Connection-oriented wil zeggen dat er een verbinding tussen de server en cliënt bestaat zolang de informatie-uitwisseling tussen beiden gaande is.
Hier wordt na het versturen van de gevraagde pakketjes de verbinding tussen de server en de cliënt verbroken..
Een tweede kenmerk is of het protocol al dan niet een controle-mechanisme heeft. Dit is een mechanisme dat de te verzenden data in pakketjes worden verdeelt, verstuurt en aan de andere kant terug in elkaar zet in de juiste volgorde. Indien er pakketjes ontbreken, worden deze nogmaals verstuurd.
3MCT
14/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
TCP(Transmission Control Protocol) Samen met IP(Internet Protocol) vormt deze het TCP/IP protocol. Dit is het meest gebruikte protocol voor de uitwisseling van informatie tussen 2 computers over het internet. TCP is een connection-oriented protocol met een ingebouwd controle-mechanisme. Dit mechanisme zorgt ervoor dat het TCP-protocol de volledigheid van informatie kan garanderen (belangrijk bij bvb. Email). Maar bij streaming is volledigheid echter van minder belang. Vooral de snelheid van de informatie-overdracht is belangrijk om het afspelen van het streaming bestand zo vloeiend mogelijk te laten verlopen. Controle op volledigheid heeft hierop een nadelig effect. UDP(User datagram Protocol) Dit protocol biedt in vergelijking met TCP beperkte services aan. Het grootste verschil is dat UDP een connectionless protocol is. UDP zorgt niet voor • het opsplitsen van de te verzenden informatie in pakketjes (datagrams geheten). • het weer in elkaar zetten van de datagrams . UDP heeft ook geen ingebouwd controle-mechanisme. Dit wil zeggen dat het programma dat UDP gebruikt in staat moet zijn om te bepalen of alle informatie is aangekomen en of de informatie in de juiste volgorde aangekomen is. Het grote voordeel is dat de snelheid van de informatie-overdracht niet vertraagd wordt door controle op volledigheid. ij streaming is het echter wel van belang dat de pakketjes in de juiste volgorde afgespeeld worden. Netwerkbeheerders sluiten hun interne netwerk meestal af voor UDP-pakketjes, omdat deze ook door hackers gebruikt worden om binnen te komen. RTP(Realtime Transport Protocol) Dit transportprotocol is speciaal ontworpen voor applicaties die realtime data versturen, zoals live audio en video, via unicasting of multicasting. Door het feit dat RTP zelf geen mechanisme heeft om tijdige aflevering te garanderen, dient het gebruikt te worden samen met een ander transportprotocol (meestal UDP). RTP is dus een transportmechanisme, terwijl UDP het daadwerkelijke transport verzorgt. Het RTP-protocol moet dan ook geplaatst worden net boven de transportlaag.
Figuur 3.2
3MCT
De positie van RTP
15/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Nut van RTP? In tegenstelling tot UDP kunnen binnen RTP een aantal eigenschappen aangegeven worden die het hanteren van realtime data vergemakkelijken. De belangrijkste eigenschappen zijn: • • •
Payload type identification: In dit veld kan aangegeven worden wat voor een soort data het pakketje bevat, bijvoorbeeld realtime data gecodeerd met behulp van MPEG-4. Sequence number: In dit veld kan aangegeven worden waar het pakketje zich bevindt in het streaming bestand. Timestamping: In dit veld kan aangegeven worden op welk moment een pakketje afgespeeld moet worden.
Deze eigenschappen kunnen worden aangegeven in de header van een RTP-paketje.
Tenslotte als illustratie: stel dat UDP wordt gebruikt als ondersteunend protocol voor RTP, dan wordt het RTP-pakketje ingepakt als UDP-pakketje en vervolgens verstuurd. Het RTPpakketje reist, nadat het is ingepakt als UDP-pakketje over het netwerk, wordt ontvangen en uitgepakt. Hierna wordt het RTP-pakketje door de applicatie (in dit geval de player van het streaming bestand) verwerkt.
Figuur 3.3
3MCT
Het inpakken van een RTP-pakketje
16/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Behalve het transportprotocol bevat RTP ook een controle mechanisme, namelijk RTCP. Dit staat voor “Realtime Transport Control Protocol”. Dit protocol verricht 4 hoofdtaken: • Feedback information: deze informatie wordt gebruikt om de kwaliteit van de verbinding te controleren en desnoods de eigenschappen van de verbinding te wijzigen. • Transport-level identification: dit wordt toegepast om bij te houden wie de deelnemers aan een sessie zijn. Tevens wordt het gebruikt om synchronisatie van geluid en beeld te realiseren. • Transmission Interval Control: Dit wordt in de gaten gehouden om de overlast door controle binnen de perken te houden. De grens is 5% van het totale netwerkverkeer. • Minimum Session Control: dit is een optionele functie om de basisinformatie door te geven over de deelnemers aan een sessie, zoals namen van de deelnemers. Hoe werkt dit nu? Er wordt een verbinding gemaakt tussen de server en de cliënt pc. De pijl van de server naar de applicatie is de verbinding waarover de controle-pakketjes verstuurd worden. De data zelf wordt opgedeeld in pakketjes via het RTP-mechnisme en dan doorgestuurd naar de transportlaag waar ze verzonden wordt via UDP. Na aankomst vindt het omgekeerde proces plaats.
Figuur 3.5
3MCT
Werking
17/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
VDP(Video Datagram Protocol) VDP maakt in tegenstelling tot RTP gebruik van een directe point-to-point verbinding tussen de server en de cliënt pc tijdens de transmissie. Er wordt niet enkel informatie uitgewisseld over het af te spelen bestand, maar ook gegevens over de toestand van het netwerk en de toestand van de cliënt cpu. Hiervoor bestaat elke VDP-verbinding uit 2 kanalen: • 1 onbetrouwbaar voor het uitwisselen van data UDP • 1 betrouwbaar voor het uitwisselen van management en monitoring informatie TCP
Figuur 4.5
Structuur v/d verbinding in VDP
3.2. Protocollen in de applicatielaag Een applicatieprotocol zorgt ervoor dat verzoeken van een applicatie doorgegeven worden aan een lager gelegen transportlaag in de juiste syntax. Dit protocol zorgt ook voor het ontvangen van informatie uit deze transportlaag en het omzetten daarvan naar de juiste applicatielaag. Applicatieprotocol zorgt ook voor de controle van de aangeleverde pakketjes met betrekking tot de volgorde en de volledigheid ervan. • HTTP-protocol • RTSP-protocol HTTP(HyperText Transfer Protocol) = standaardprotocol in de applicatielaag voor het uitwisselen van informatie op het internet. HTTP wordt vaak samen gebruikt met het transportprotocol TCP. In het http-protocol blijft de verbinding met de server bestaan zolang er informatie gedownload wordt (disconnected mode). Een ander kenmerk van http is dat enkel de cliënt een verzoek kan doen aan de server. De http-server houdt geen gegevens bij over de staat van de verbinding. Voordeel van http: • Eenvoud • Kan gebruikt worden om verschillende soorten informatie door te zenden. • Dit is echter ook het zwakke punt van http, wanneer het gebruikt wordt in samenhang met streaming. Dit levert problemen op omdat http niet specifiek voor streaming ontwikkeld is. RTSP(RealTime Streaming Protocol) Dit protocol is meer ontwikkeld naar streaming toe. Het is ontwikkeld om samen te werken met het bijhorende RTP en RTCP. Binnen RTSP is het zelfs mogelijk dat er, afhankelijk van de situatie, van één van de behandelde protocollen gebruik gemaakt wordt. Zo kan TCP gebruikt worden voor het uitwisselen van controle-informatie, terwijl UDP gebruikt kan worden voor de transmissie van data.
3MCT
18/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
RTSP: • Een manier om meerdere streams te verzorgen. • Een manier om een transportprotocol te kiezen (vb UDP of TCP). • Een manier om een transportmechanisme te kiezen (vb RTP). Verschillen HTTP RTSP: Bij RTSP is er geen eenrichtingverkeer zoals bij HTTP, want zowel server als cliënt kunnen verzoeken doen om informatie te hebben. Ook dient er een continue verbinding te zijn tussen de server en de cliënt tijdens het afspelen.
Woordenlijst Bandbreedte: Dataverkeer staat voor de totale hoeveelheid data die er over een bepaalde internet-kabelgestuurd wordt en van de breedte voor de maximale capaciteit van zo' n kabel. Hoeveel nullen en enen kunnen er per seconde overheen worden gestuurd? Bandbreedte is een maat om de capaciteit van Internet Providers te meten. ADSL:
Assymetric Digital Subscriber Line is een DSL-technologie die een hoge bandbreedte heeft in de ene richting en een lage in de andere.
Telenet:
Maatschappij voor Internetaansluiting via kabel. Is net als ADSL ook assymetrisch en beperkt door het aantal providers.
Net congestion: Bit-rate:
netwerk vertraging
bit-rate of data-rate controleerd de hoeveelheid video-informatie (uitgedrukt in kilobytes per seconde ) die zal worden gebruikt gedurende de video-weergave.
Platform-onafhankelijk:
mogelijkheid om dezelfde uitwerking te hebben op zowel PC, Mac, Linux, …
MP3: bestandsformaat voor audiobestanden. Heeft een compressie zonder hoorbaar kwaliteitsverlies. De compressie is gebasseerd op MPEG-1. VHS: Video Home System. DVD: Digital Versatile Disc. Kan DTS: Digital Theatre Sound Blue-of green-screen: optie die gebruikt wordt in video-editing programma’s zoals onder andere premiere. Door een achtergrond van een voorwerp, persoon, … te gebruiken die uit 100% groen of cyaan bestaat kunnen we deze achteraf veranderen door een ander stuk video of foto. Zo lijkt als het ware dat de persoon of voorwerp zich oorspronkelijk daar bevond.
3MCT
19/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
ISDN:
Integrated Services Digital Network die de toepassingen van het gewone telefoonnet heeft uitgebreid.
Protocol:
Een protocol zorgt voor een correct verloop van het dataverkeer tussen de verschillende clients en server.
Firewall:
Een stuk hardware of software die het netwerk beschermd tegen invloeden van buitenaf.
Kbps: Kilobits per seconde
3MCT
20/21
2003-2004
Charlier Bart Verstraete Kevin
NW1
Streaming project
Informatiebronnen • • • • •
http://www.surfnet.nl/bijeenkomsten/streaming/technologie/h1.html http://www.ietf.org/rfc/rfc2326 http://maximus.uvt.nl/~remijn/telematica/scripties00/groep9/hoofdstuk_1.html http://alpha.luc.ac.be/Didactiek/WNI/IK3/TMS/resources/8-Streaming_media.pdf http://www.videoaudioreport.nl/pdf/Streaming-formaten_2-01.pdf
•
cursus multimedia 2MCT
3MCT
21/21
2003-2004