video web streaming – live

WirecastIn het bos van video web streaming staan de bomen soms in de weg van een helder beeld. Video streaming kan op veel verschillende manieren en binnen heel verschillende budgetten. De bruiloft van een koninklijk paar stelt hogere eisen aan de stream dan een huiskameroptreden van een (nog) onbekende singer-songwriter, met name op het gebied van gelijktijdige viewers. In dit Tech blog zullen de belangrijkste aspecten van streaming belicht worden en de verschillende keuzes daarin worden verduidelijkt zodat je beter een afwegingen kunt maken voor het hosten of inhuren van een streaming event.

Hoe gaat video web streaming in zijn werk?

Streaming van video gebeurt vrijwel altijd door videodata onder te verdelen in korte tijdsblokjes en die blokjes te verzenden naar een of meerdere ontvangers, waar die blokjes dan weer achter elkaar gezet worden en afgespeeld. De lengte van die blokjes bepaalt voor een groot deel de vertraging (latency) tussen het live video en het afspelen bij de ontvanger.
Iedere client die een stream wil bekijken gebruikt de bandbreedte van de server waardoor bij meerdere viewers het datagebruik behoorlijk kan oplopen. Omdat de meeste Internet verbindingen niet snel genoeg zijn om veel ontvangers tegelijk te bedienen wordt streaming vaak in twee stappen gedaan: de zender stuurt één unicast stream naar een server, die voldoende uitgaande bandbreedte heeft, en die stelt de stream als zodanig weer beschikbaar aan alle viewers.

Platforms

De twee meest populaire video web streaming technieken zijn Adobe Flash en HTTP Live streaming (HLS), die beide gebruik maken van de populaire H.264 codec, of van de modernere x264 variant daarvan. Adobe Flash is een Internet browser plugin maar alomtegenwoordig, behalve op iOS devices zoals iPhones en iPads. HTTP Live Streaming is dan weer beschikbaar voor iOS devices, Apple’s Internet browser Safari en ook Android. Om een zo groot mogelijk publiek te bereiken zijn er mogelijkheden om op beide platforms tegelijkertijd te streamen.
video web streaming

Streaming tools

De eenvoudigste manier om video in Adobe Flash te streamen is Adobe’s Flash Media Encoder, een gratis tool met zeer weinig instelmogelijkheden die een binnenkomend video signaal kan omzetten naar een Flash Stream.
Veel uitgebreider is Telestream Wirecast, een uitgebreid programma waarmee je kunt schakelen tussen verschillende bronnen, titels kunt toevoegen, greenscreen en andere effecten kunt toepassen en nog meer. Het is een volledige video web streaming studio in een software pakket.
Als je liever hardware gebruikt is er de Matrox Monarch HD, in te stellen via een web browser en daarna ook stand alone te gebruiken met een eenvoudige knop “Stream”. Bovendien kan de Matrox Monarch HD tegelijkertijd ook opnemen om de stream op een later moment te gebruiken voor bijvoorbeeld video on demand.
Voor HTTP Internet Streaming is er het programma Movie Recorder van Softron, het ingest programma om video in hoge kwaliteit te ingesten, en tegelijkertijd om te zetten naar een HTTP live stream. In combinatie met de JW Player Premium version is het daarmee bovendien mogelijk om de HTTP stream te rewrappen naar een Flash Stream om zo ook dat platform te bedienen.

CDN of zelf hosten?

video web streamingEen Content Delivery Network, CDN, is een partij die een binnenkomende unicast stream beschikbaar stelt als multicast stream. Zo kun je met een niet al te snelle internet verbinding je stream uploaden naar de CDN en die heeft voldoende bandbreedte om de stream te hosten voor een veel groter publiek. Vaak biedt een CDN ook extra mogelijkheden, bijvoorbeeld het bijhouden van het aantal viewers en het rewrappen van een Flash stream in een HTTP Live stream, zodat alle browsers en iOS devices ondersteund worden voor een groter bereik. Er zijn CDN’s die een maandbedrag in rekening brengen voor een bepaald gebruik tot een maximum van een x aantal viewers en er zijn ook CDN’s die je voor één evenement eenmalig betaalt per x aantal viewers. Grote internationale CDN’s zijn Ustream en natuurlijk YouTube, dat ook streaming ondersteunt. Vaak is daar een gratis stream op te hosten, die dan af en toe wordt onderbroken door een reclame. Let bij de keuze van de CDN goed op wat je eisen zijn en wat je gaat betalen.
HTTP live streaming gaat via een standaard webserver zoals Apache dus als je al een Internet pagina online hebt zorg je dat de streaming files van je HTTP Live stream daarnaartoe worden geupload en klaar ben je. Let hierbij op dat je Internet hosting provider soms ook een maximum aan dataverkeer toestaat of wat je meer gebruikt apart in rekening brengt, en bij veel kijkers kan dat oplopen.
Als je zelf een zeer snelle Internetverbinding hebt zonder datalimiet, kun je ook nog zelf je stream hosten: in plaats van je stream te uploaden naar een CDN of je Internet hosting provider, upload je je HTTP stream naar je eigen Apache server in huis en stel je die server voor de buitenwereld beschikbaar als web server.

Hoeveel data?

Hoeveel data kost streaming nu eigenlijk? Dat hangt dus af van de kwaliteit van je stream, de lengte in tijd en, indien je het zelf host, ook de hoeveelheid viewers. Datarates van streaming worden meestal uitgedrukt in kilobit per seconde (kbps of kb/s), of Megabit per seconde (Mbps of Mb/s), een Megabit is gelijk aan 1024 kilobit. Als we kijken naar de Wirecast preset voor 720p H.264 streaming dan heeft die een datarate van 2217 kb (kilobit) per seconde voor audio en video samen, omgerekend is dat 2,17 Mb (megabit) per seconde. Als je zo’n stream een uur lang laat lopen (uploadt naar een CDN of web server) heb je 7794 Mb aan data verstuurd, dat is bijna 1GB (GigaByte). Met een eigen server in huis en een snelle glasvezelverbinding van 100 Mb/s kun je theoretisch maximaal 46 mensen tegelijkertijd naar deze stream laten kijken, dan zit de lijn “vol”.
ADSL lijnen hebben meestal een lagere upload snelheid, maximaal 1 of 2 Mb (megabit) per seconde, en dan is deze preset dus al te zwaar. Om een constante stream te genereren met een 1Mb/s upload lijn moet je daar veilig onder zitten, bijvoorbeeld op 700 kb/s.
Je kunt ook voor een nog lagere kwaliteit kiezen, waarbij je rekening moet houden met de grootte van het beeld: je kunt bij een lagere datarate ook beter een kleiner beeldformaat gebruiken in plaats van te proberen een full HD plaatje met een lage datarate te streamen, dan is er onvoldoende data beschikbaar om de stream er fatsoenlijk uit te laten zien, het wordt blokkerig en onduidekijk. De preset van Wirecast voor 240p video verbruikt 511 kb/s, dus ongeveer een kwart van de 720p preset.

Praktijk

De theorie hierboven geeft je wat handvatten in de keuzes die je kunt maken in live video streaming. Wil je meer weten of bepaalde kwaliteiten of mogelijkheden in praktijk zien, maak dan een afspraak en kom langs. We hebben hard- en software streaming oplossingen demonstratieklaar staan en kunnen je dus precies laten zien welke beeldkwaliteit in welke situatie je kunt krijgen. We adviseren de juiste hard- en software en kunnen de gehele setup leveren met camera’s, Mac, software, instructie en support. Dan ben je er ook zeker van dat alle componenten goed op elkaar zijn afgestemd.