- Max Wilbert
- Inhoudsopgave
- Wat is een Video Streaming Protocol?
- Streamingprotocol vs. codec vs. containerformaat
- Gemeenschappelijke videostreamingprotocollen
- Real-Time Messaging Protocol (RTMP)
- Wie zou RTMP moeten gebruiken?
- Real-Time Streaming Protocol (RTSP)
- Wie zou RTSP moeten gebruiken?
- RTMP vs RTSP
- Voordelen van het gebruik van RTMP:
- Cons of Using RTMP:
- Voordelen van het gebruik van RTSP:
- Cons of using RTSP:
- Dynamic Adaptive Streaming over HTTP (MPEG-DASH): opkomend protocol
- Wie zou MPEG-DASH moeten gebruiken?
- Microsoft Smooth Streaming (MSS)
- Wie zou Smooth Streaming moeten gebruiken?
- HTTP Dynamic Streaming (HDS)
- Wie zou HDS moeten gebruiken?
- HTTP Live Streaming (HLS)
- Wie zou HLS moeten gebruiken?
- Videoprotocollen voor professionele live streaming
- Conclusie
Max Wilbert
Max Wilbert is een gepassioneerd schrijver, beoefenaar van livestreaming, en heeft een sterke expertise in de videostreamingindustrie.
Wanneer je met live streaming aan de slag gaat, zul je een overvloed aan acroniemen opmerken die veel verschillende doelen dienen. Er is RTMP, HLS, HDS, en nog veel meer.
Veel van deze acroniemen hebben betrekking op verschillende videostreamingprotocollen. In principe zijn protocollen technische processen die de overdracht van gegevens van het ene programma naar het andere vergemakkelijken. Bij streaming betekent dit de overdracht van uw videobestanden van en naar uw encoder, streaming host, en uiteindelijk, de videospeler waar uw publiek uw stream bekijkt.
Vandaag gaan we enkele van de meest voorkomende streaming protocollen identificeren die u zult tegenkomen, wat ze doen, en wanneer ze moeten worden gebruikt. Om u wat achtergrondinformatie te geven, leggen we ook uit wat de relatie is tussen een codec en een containerformaat.
Ben je klaar om je te verdiepen in live-streamingprotocollen?
Merk op dat dit bericht is bijgewerkt met de nieuwste ontwikkelingen op het gebied van videostreamingprotocollen per november 2020.
Inhoudsopgave
- Wat is een videostreamingprotocol?
- Streamingprotocol vs. Codecs vs. Container Format
- Common Video Streaming Protocols
- Video Protocols for Professional Live Streaming
- Conclusie
Wat is een Video Streaming Protocol?
Voordat we verder gaan, gaan we eerst wat dieper in op de definitie van een videostreamingprotocol. De meeste digitale video is ontworpen voor twee dingen: opslag en afspelen. Dit leidt tot twee belangrijke overwegingen, namelijk kleine bestandsgrootte en universeel afspelen.
De meeste videobestanden zijn niet ontworpen voor streaming, wat betekent dat het streamen van een video inhoudt dat deze eerst wordt omgezet in een streambaar bestand. Dit houdt in dat het in kleine brokjes wordt opgedeeld. Deze brokken komen dan achter elkaar aan en worden afgespeeld wanneer ze worden ontvangen. Als u live video streamt, komt de bronvideo rechtstreeks van een camera. Anders komt het uit een bestand voor VOD-inhoud.
Een videostreamingprotocol is een gestandaardiseerde leveringsmethode om een video in brokjes op te splitsen, naar de kijker te sturen en weer in elkaar te zetten.
Streamingprotocollen kunnen veel complexer worden. Veel van deze protocollen zijn bijvoorbeeld “adaptive bitrate”-protocollen. Deze technologie levert de beste kwaliteit die een kijker op een bepaald moment kan ondersteunen.
Sommige protocollen zijn gericht op het verminderen van de latentie, ofwel de vertraging tussen een gebeurtenis in het echte leven en het moment dat deze op het scherm van de kijker wordt afgespeeld. Sommige protocollen werken alleen op bepaalde systemen, en andere protocollen zijn gericht op het beheer van digitale rechten (DRM).
Als we een aantal specifieke protocollen bespreken, zullen we deze en andere kenmerken in perspectief plaatsen.
Streamingprotocol vs. codec vs. containerformaat
Een veelvoorkomende bron van verwarring op het gebied van streaming video heeft onder andere betrekking op het verschil tussen een protocol en een codec.
Vereenvoudig gezegd verwijst de term “codec” naar videocompressietechnologie. Logischerwijs worden verschillende streaming codecs gebruikt voor verschillende doeleinden. Apple ProRes wordt bijvoorbeeld vaak gebruikt voor videobewerking en H.264, de meest gebruikte videocodec, wordt veel gebruikt voor online video.
Net als bij codec kan de term “formaat” ook verwarrend zijn in de context van videostreamingprotocollen. In veel gevallen verwijst formaat gewoon naar het containerformaat van een videobestand. Bekende containerformaten zijn .mp4, .m4v en .avi.
In essentie functioneert een container-indeling als een “doos” die meestal een videobestand, een audiobestand en metadata bevat. Het containerformaat is echter niet zo’n centraal begrip voor live streamers.
Laten we een vergelijking maken om de relatie tussen een codec, een containerformaat en een streamingprotocol beter te begrijpen.
Stel je voor dat je een handelaar bent, en je vervoert kleding in bulk (de kleding vertegenwoordigt de video-inhoud). De streaming codec is gelijk aan de machine die de kleding comprimeert tot een bundel om ruimte te besparen. Het containerformaat is de goederenwagon waarin deze bundels worden verpakt. Het streaming-protocol is analoog aan de spoorrails, de seinen en de machinisten die het op de plaats van bestemming afleveren.
Als omroeporganisatie wilt u dat uw live-videocontent functioneert in overeenstemming met een codec, containerformaat en streamingprotocol.
Het is ook belangrijk op te merken dat de meeste streamingprotocollen slechts bepaalde codecs ondersteunen. We zullen hier later meer op ingaan.
Gemeenschappelijke videostreamingprotocollen
Nu u een beter idee hebt van het doel van videostreamingprotocollen, laten we beginnen met onze vergelijking van de meest voorkomende videostreamingprotocollen van dit moment.
In deze vergelijking zullen we waar mogelijk ook gebruikscases bieden voor elk protocol.
Real-Time Messaging Protocol (RTMP)
Eerst bovenaan staat het veteranenprotocol: RTMP oftewel Real-time messaging protocol. Het RTMP-protocol is oorspronkelijk ontwikkeld door Macromedia in de begindagen van streaming en wordt nog steeds op grote schaal gebruikt.
Heden ten dage wordt RTMP vooral gebruikt voor het opnemen van live streams met behulp van een encoder die RTMP ondersteunt. In eenvoudige bewoordingen: wanneer u uw encoder instelt om uw videofeed naar uw video hosting platform te sturen, zal die video het CDN bereiken via het RTMP-protocol. Die content bereikt uiteindelijk de eindkijker via een ander protocol, meestal het HLS streaming protocol.
RTMP wordt nog maar zelden gebruikt als streaming protocol voor video’s naar de kijker toe, zoals dat vroeger het geval was. Dat komt omdat het afhankelijk is van de Flash-plugin, die al jaren geplaagd wordt door beveiligingsproblemen en snel verouderd raakt.
Wie zou RTMP moeten gebruiken?
RTMP is een streaming protocol dat streams met een zeer lage latency biedt. Echter, omdat het de Flash plugin vereist om te kunnen afspelen, raden wij het niet aan. Nogmaals, de uitzondering is voor stream ingestion. Voor dit doel is RTMP nog steeds een van de beste opties. Het is robuust en wordt bijna universeel ondersteund.
Real-Time Streaming Protocol (RTSP)
Per misschien een minder bekend video streaming protocol, Real-Time Streaming Protocol (RTSP) werd voor het eerst gepubliceerd in 1998. RTSP werd ontwikkeld om streaming media servers aan te sturen in met name entertainment- en communicatiesystemen.
In 2016 kwam een bijgewerkte RTSP 2.0 beschikbaar. Over het algemeen staat het bekend als een videostreamingprotocol voor het opzetten en controleren van mediasessies tussen eindpunten.
RTSP is in sommige opzichten vergelijkbaar met het HTTP Live Streaming (HLS) -protocol, dat we hieronder zullen behandelen. Echter, het verzenden van live streaming data is niet wat RTSP op zichzelf doet. In plaats daarvan werken RTSP-servers vaak samen met het Real-Time Transport Protocol (RTP) en Real-Time Control Protocol (RTCP) om mediastreams te leveren.
Wie zou RTSP moeten gebruiken?
RTSP is ontworpen om streaming met een lage latency te ondersteunen en is een goede keuze voor streaming use cases zoals IP-camerafeeds (bijv. beveiligingscamera’s), IoT-apparaten (bijv. laptop-gestuurde drone) en mobiele SDK’s.
Een belangrijk nadeel is echter dat er beperkte native browserondersteuning is voor RTSP.
RTMP vs RTSP
RTMP en RTSP zijn beide streaming protocollen, wat betekent dat het sets van regels zijn die bepalen hoe gegevens van het ene communicatiesysteem naar het andere reizen. Als de videodata die u naar uw kijkers probeert te sturen een auto is, dan is het streamingprotocol de weg die de auto neemt om van de ene plaats naar de andere te komen.
Voordelen van het gebruik van RTMP:
- Lage latency: Lage latency zorgt ervoor dat uw live video stream een stabiele verbinding en video feed behoudt voor de kijker, zelfs als de internetverbinding onbetrouwbaar is. Dit biedt uw kijkers minder “vertragingen” bij het bekijken van uw video’s met een wankele internetverbinding, zodat ze de stream snel kunnen hervatten zodra hun internetverbinding stabiliseert.
- Aanpasbaar: Een aanpasbare feed betekent dat uw kijkers niet opgesloten zitten in het bekijken van uw feeds in één lineaire richting. Met aanpasbaarheid kunnen ze delen van de feed overslaan en terugspoelen of zich bij een livestream voegen nadat deze is begonnen.
- Flexibel: Met RTMP kunt u verschillende mediatypen integreren in één samenhangend pakket, waarbij audio, video en tekst naadloos in elkaar overgaan. Bovendien kunt u meerdere variaties van mediakanalen hebben, zoals het streamen van zowel MP3 als AAC audio streams of het streamen van MP4, FLV, en F4V video’s.
Cons of Using RTMP:
- Niet ondersteund door HTML5: RTMP wordt ondersteund door Flash-spelers, een formaat dat hard op weg is verouderd te raken. HTML5-spelers zijn snel de moderne standaard aan het worden, maar RTMP kan niet worden afgespeeld op HTML5-spelers zonder een converter zoals HLS.
- Bandbreedteproblemen: RTMP-streams kunnen bijzonder kwetsbaar zijn voor problemen met een lage bandbreedte. Dit kan leiden tot frequente, frustrerende onderbrekingen van uw streams die de ervaring voor uw kijkers verpesten.
- HTTP incompatibel: Je kunt een RTMP-feed niet rechtstreeks streamen via een HTTP-verbinding. Om een RTMP stream op je website te gebruiken, moet je verbinding maken met een speciale server, zoals de Flash Media Server, en gebruik maken van een third-party content delivery network (CDN).
Voordelen van het gebruik van RTSP:
- Gesegmenteerde streaming: In plaats van uw kijkers te dwingen een hele video te downloaden voordat ze deze bekijken, kunnen ze met de RTSP-stream uw inhoud bekijken voordat de download is voltooid.
- Aanpassing: Door gebruik te maken van andere protocollen, zoals Transmission Control Protocol (TCP) en User Datagram Protocol (UDP), kunt u uw eigen video streaming toepassingen maken.
Cons of using RTSP:
- Minder populair: Vergeleken met andere media-streamingprotocollen is RTSP veel minder populair. De meeste videospelers en streamingdiensten ondersteunen geen RTSP-streaming, waardoor het moeilijker is om uw stream in uw browser uit te zenden. Om een RTSP stream uit te zenden, moet je een aparte RTSP live streaming dienst gebruiken.
- Niet compatibel met HTTP: Net als RTMP kunt u RTSP niet rechtstreeks over HTTP streamen. Daarom is er geen gemakkelijke, eenvoudige manier om RTSP in een web browser te streamen, aangezien RTSP meer ontworpen is voor het streamen van video op private netwerken zoals beveiligingssystemen binnen een bedrijf. U kunt echter RTSP streamen met behulp van extra software die in uw website is ingebed.
De keuze tussen RTMP en RTSP streaming protocollen hangt sterk af van uw individuele zakelijke behoeften en hoeveel extra stappen u bereid bent te nemen om uw content afspeelbaar te maken op uw website.
Dynamic Adaptive Streaming over HTTP (MPEG-DASH): opkomend protocol
Aan de andere kant van het spectrum hebben we MPEG-DASH, een van de nieuwste protocollen op het toneel. Hoewel het nog niet op grote schaal wordt gebruikt, heeft dit protocol een aantal grote voordelen.
Ten eerste ondersteunt het adaptive-bitrate streaming. Dat betekent dat kijkers altijd de beste videokwaliteit ontvangen die de snelheid van hun huidige internetverbinding kan ondersteunen. Die fluctueert van seconde tot seconde, en DASH kan dat bijbenen.
MPEG-DASH lost een aantal al lang bestaande technische problemen met aflevering en compressie op. Een ander voordeel is dat MPEG-DASH “codec-agnostisch” is, wat betekent dat het met vrijwel elk coderingsformaat kan worden gebruikt. Ook ondersteunt het Encrypted Media Extensions (EME) en Media Source Extension (MSE), op standaarden gebaseerde API’s voor browsergebaseerd digitaal rechtenbeheer (DRM).
Wie zou MPEG-DASH moeten gebruiken?
Vandaag de dag wordt MPEG-DASH nog maar door een fractie van de professionele omroepen gebruikt in vergelijking met HLS. Wij geloven echter dat het in de toekomst de standaardtechnologie zal worden.
De reden dat dit protocol nog niet razend populair is, kan worden toegeschreven aan compatibiliteit (bijv. Apple Safari en iOS-apparaten ondersteunen het niet) en andere gerelateerde zaken.
Microsoft Smooth Streaming (MSS)
De volgende stap is Microsofts Smooth Streaming (MSS) protocol. MSS werd oorspronkelijk geïntroduceerd in 2008 en was een integraal onderdeel van de Olympische Zomerspelen van dat jaar. De populariteit is echter afgenomen, behalve onder Microsoft-gerichte ontwikkelaars en degenen die werken in het Xbox ecosysteem.
Smooth Streaming ondersteunt adaptive-bitrate streaming en bevat een aantal robuuste tools voor DRM. Over het geheel genomen is het een hybride media delivery methode die functioneert als streaming, maar is gebaseerd op HTTP progressive download.
Wie zou Smooth Streaming moeten gebruiken?
Tenzij je belangrijkste doelgroep Xbox-gebruikers zijn of je van plan bent Windows-specifieke apps te bouwen, raden we je niet aan MSS te gebruiken als primair videostreaming protocol.
HTTP Dynamic Streaming (HDS)
Adobe’s entree in de wereld van streamingprotocollen is HTTP Dynamic Streaming (HDS), de opvolger van RTMP. Net als RTMP is HDS een flashgebaseerd streamingprotocol. Het biedt echter ook ondersteuning voor adaptieve streaming en heeft een reputatie van hoge kwaliteit.
HDS is ook een van de betere protocollen als het gaat om latency. Aan de andere kant is de latency niet zo laag als bij RTMP vanwege het fragmentatie- en encryptieproces, waardoor het minder populair is voor het streamen van sport en andere evenementen waarbij seconden van belang zijn.
Wie zou HDS moeten gebruiken?
In het algemeen raden we het gebruik van HDS niet aan. In de afgelopen jaren is de Flash-ondersteuning te zwak geworden voor omroepen om op deze technologie te vertrouwen om hun publiek te bereiken. Kortom, het bouwen van uw webvideo rond de Flash-player is vandaag de dag gewoon een slechte keuze.
HTTP Live Streaming (HLS)
Het laatste videostreamingprotocol dat we zullen bespreken is HTTP Live Streaming of HLS. Apple bracht dit protocol oorspronkelijk in 2009 uit om Flash van iPhones te kunnen laten vallen. Sindsdien is HLS uitgegroeid tot het meest gebruikte streamingprotocol.
Daar zijn verschillende redenen voor. Ten eerste ondersteunen desktopbrowsers, smart-tv’s en mobiele apparaten met zowel Android als iOS allemaal HLS. HTML5-videospelers ondersteunen HLS ook van nature, in tegenstelling tot HDS en RTMP.
Dit zorgt ervoor dat een stream zoveel mogelijk kijkers kan bereiken, waardoor HLS momenteel het veiligste protocol is om een live stream te schalen naar een groot publiek. U kunt dit protocol bijvoorbeeld gebruiken om live video op uw website te streamen met een eenvoudige embed code.
Als het gaat om features, ondersteunt de HLS standaard ook adaptive-bitrate streaming, waarbij dynamisch de best mogelijke videokwaliteit wordt geleverd op elk moment. Met recente updates ondersteunt deze standaard nu de nieuwste-en-grootste H.265 codec, die tweemaal de videokwaliteit levert bij dezelfde bestandsgrootte als H.264.
Huidig is het enige nadeel van HLS dat de latency relatief hoog kan zijn. Er zijn echter methoden om de latentie van HLS te verlagen.
Wie zou HLS moeten gebruiken?
HLS is het meest gebruikte protocol van dit moment, omdat het robuust en effectief is. We weten bijvoorbeeld dat maar weinig kijkers tijdens een stream naar een site zullen terugkeren als ze een videofout ondervinden. Het gebruik van een breed compatibel, adaptief protocol als HLS zorgt voor de best mogelijke ervaring voor het publiek.
We willen ook graag vermelden dat HLS nu het standaard streaming protocol is dat bij Dacast wordt gebruikt.
Videoprotocollen voor professionele live streaming
Om kort te gaan: er bestaan tegenwoordig veel videostreamingprotocollen, en veel van deze protocollen kunnen worden gebruikt voor live videostreaming.
Zoals we hierboven hebben besproken, hebben alle hier besproken protocollen – RTMP, RTSP, MPEG-DASH, MSS, HDS en HLS – specifieke gebruiksscenario’s voor specifieke omroepen. Maar als alles in aanmerking wordt genomen, komt HLS als beste uit de bus, vooral wat betreft codec-compatibiliteit, compatibiliteit met alle apparaten, native ondersteuning voor HTML5-videospelers en adaptieve bitrate-streamingcapaciteit.
Onze aanbeveling is simpel: voorlopig moeten bijna alle omroepen het HLS-videostreamingprotocol blijven gebruiken.
Natuurlijk kunnen sommige gebruikers andere protocollen beter vinden voor hun behoeften. Maar of je nu live video wilt streamen op je website, live sportwedstrijden wilt streamen of professionele evenementen en bijeenkomsten live wilt uitzenden, HLS is over het algemeen de beste manier.
Houd in gedachten dat MPEG-DASH een opkomende optie is. Kijk uit naar de toenemende adoptie van dat stream-protocol in de nabije toekomst.
Conclusie
Hoewel streamingprotocollen en verwante technologie een beetje complex zijn, zijn ze volledig benaderbaar wanneer ze worden opgedeeld in kleinere, verteerbare ideeën.
Wij hopen dat dit bericht heeft geholpen om het doel van videostreamingprotocollen en de relatie tussen videostreamingprotocol, codec en containerformaat te verduidelijken. We vertrouwen erop dat u nu het juiste protocol voor uw behoeften kunt kiezen en gebruiken.
Om HLS streaming op het Dacast platform te testen, nodigen wij u uit om u aan te melden voor onze 30-dagen gratis proefversie. Op die manier kunt u kennismaken met de functies voordat u zich commiteert
GET STARTED FOR FREE