ID.nl logo
Wat is WebRTC? Alles over de online standaard voor videobellen
© PXimport
Huis

Wat is WebRTC? Alles over de online standaard voor videobellen

Als je in de beginjaren van het web videogesprekken in je webbrowser wilde voeren, moest je een plug-in zoals Adobe Flash of Silverlight installeren. Anno nu is er een veel betere oplossing, die op alle populaire browsers werkt zonder extra installatie: WebRTC. Wat is WebRTC precies?

WebRTC is een open framework voor realtime communicatie (RTC) voor het web. Het stelt ontwikkelaars in staat om webapplicaties voor spraak- en videogesprekken en peer-to-peer bestandsuitwisseling te bouwen zonder dat gebruikers extra software hoeven te installeren.

Opensource videobeldiensten zoals Jitsi en Nextcloud Talk gebruiken WebRTC en ook Microsoft Teams heeft een webclient die op WebRTC is gebaseerd. WebRTC is een standaard van het World Wide Web Consortium (W3C) en de Internet Engineering Task Force (IETF). Het wordt ondersteund door Google, Mozilla, Apple, Microsoft en Opera, zowel op de desktop als in mobiele browsers.

Toegang tot je webcam, microfoon en luidsprekers was in het begin van het web alleen mogelijk via een browserplug-in zoals Flash of Silverlight. Html5 maakte daar een einde aan: de standaard bood javascript-api’s aan voor rechtstreekse toegang tot allerlei apparaten.

De toegang tot audio- en videoapparaten, maar ook tot schermdeling, krijg je in de javascript-api MediaDevices en dan specifieker de functie getUserMedia. WebRTC bouwt hierop dan ook voort. Als een WebRTC-app de functie getUserMedia aanroept, komt je browser met de vraag om de website toegang te geven tot je webcam en microfoon.

©PXimport

WebRTC werkt peer-to-peer, wat betekent dat de communicatie rechtstreeks tussen de clients gebeurt. Maar bij het opbouwen van de verbinding is er nog wel een server nodig. Die server helpt beide clients om elkaars publieke ip-adres en poort uit te wisselen als ze NAT (Network Address Translation) gebruiken. Dat heet een STUN-server (Session Traversal Utilities for NAT).

In sommige netwerken is een STUN-server niet voldoende en dan heeft WebRTC voor de communicatie een TURN-server nodig (Traversal Using Relays around NAT). Die stuurt continu het verkeer door tussen beide clients. Dat lijkt op het eerste gezicht een veiligheidsrisico, want de TURN-server kan al het verkeer tussen de clients afluisteren, maar dat is het niet: WebRTC verplicht het gebruik van encryptie.

WebRTC en privacy

We kennen allemaal encryptie in de browser in de vorm van https: http-verkeer dat versleuteld is met behulp van tls. Maar realtime communicatie kan tls niet gebruiken, want tls is een protocol gebaseerd op tcp. En tcp gebruikt een handshake die voor elk verstuurd pakketje een bevestiging vraagt, wat extra vertraging introduceert. Realtime communicatie verloopt daarentegen altijd over udp, dat pakketjes gewoon negeert als ze niet arriveren. Enkele verloren pakketjes hoor je toch niet.

Gelukkig bestaat er ook voor udp-verkeer een standaard encryptieprotocol: Datagram Transport Layer Security (dtls). De nieuwste versie, dtls 1.2, is gebaseerd op tls 1.2. WebRTC gebruikt dtls om na de verbindingsopbouw met een STUN-server op een veilige manier encryptiesleutels uit te wisselen.

Daarna wordt de mediastream door Secure Real-time Transport Protocol (srtp) doorgestuurd, versleuteld met de sleutels die door dtls werden uitgewisseld. Het gebruik van het onversleutelde Real-time Transport Protocol (rtp) is expliciet verboden in de WebRTC-specificatie.

©PXimport

Er zit één grote zwakheid in de encryptie van WebRTC. Srtp versleutelt alleen maar de ‘payload’ van pakketjes, maar niet de header. Daardoor kan een turn-server de communicatie die ze doorstuurt niet afluisteren, maar ze kan er wel nuttige metadata uithalen.

Zo bevat de header de audioniveaus van de versleutelde mediastream. Iedereen die srtp-pakketjes kan onderscheppen, kan daaruit bijvoorbeeld afleiden of de gebruiker aan het spreken is of niet. Je kunt je voorstellen dat dat in sommige omstandigheden al gevoelige informatie is.

Een ander nadeel heeft te maken met het peer-to-peer-aspect: omdat clients rechtstreeks met elkaar spreken, kennen ze elkaars ip-adres. Voor anonimiteit is WebRTC dus niet geschikt, tenzij je extra maatregelen neemt.

Codecs

Elke webbrowser die WebRTC-ondersteuning zegt te hebben, is verplicht om de videocodecs VP8 en AVC / H.264 te ondersteunen. Van die laatste is alleen het profiel Constrained Baseline (CB) verplicht. Dat is een subset van het algemene profiel, specifiek ontworpen voor videoconferencing. WebRTC specificeert ook enkele AVC-parameters die de webbrowser op een specifieke manier moeten ondersteunen. Naast deze twee verplichte videocodecs ondersteunen Chrome en Firefox ook VP9, de opvolger van VP8.

De verplichte audiocodecs voor WebRTC zijn Opus en G.711 PCM (A-law en µ-law). Opus is de voorkeurscodec en hij wordt vaak gebruikt in combinatie met VP9. G.711 is geschikt als je alleen audio gebruikt en minder bandbreedte hebt. Daarnaast ondersteunen Chrome en Safari ook iLBC (Internet Low Bitrate Codec) en iSAC (Internet Speech Audio Codec). Chrome, Firefox en Safari ondersteunen ook G.722, dat een betere audiokwaliteit biedt dan G.711.

De ontwikkeling van WebRTC 2010 - Google koopt On2 Technologies, de eigenaar van de VP8-videocodec, en Global IP Solutions, dat realtime spraak- en videosoftware voor ip-netwerken ontwikkelt. 2011 - Google maakt de technologie van Global IP Solutions opensource onder de naam WebRTC en ondersteunt deze in Chrome 23. 2013**-** Firefox 20 ondersteunt WebRTC. Het eerste WebRTC-videogesprek tussen Chrome en Firefox wordt gevoerd. **2014 -**Google Hangouts gebruikt een variant van WebRTC. 2017 - WebRTC 1.0 wordt een W3C Candidate Recommendation en wordt ondersteund door Microsoft Edge en Safari 11.

Zelf aan de slag

Op de website van het WebRTC-project vind je allerlei handleidingen om aan de slag te gaan. Uiteraard is de informatie daar nogal op Google gefocust. Zo wordt er verwezen naar Googles ontwikkelplatform Firebase. Ook Mozilla heeft een boel informatie over WebRTC beschikbaar op MDN Web Docs.

Hoewel WebRTC een open standaard is, verschilt de ondersteuning in diverse webbrowsers nog wel. Google heeft een javascript-bibliotheek ontwikkeld waardoor je in je WebRTC-webapp geen rekening hoeft te houden met die verschillen: Adapter.js. Het enige wat je hoeft te doen is het bestand adapter.js als script in je webpagina invoegen en dan de WebRTC-specificatie letterlijk te volgen: adapter.js voert zelf browserspecifieke aanpassingen door.

▼ Volgende artikel
Waar voor je geld: 5 veelzijdige camera's voor rondom het huis
Zekerheid & gemak

Waar voor je geld: 5 veelzijdige camera's voor rondom het huis

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Daarom speuren we een paar keer per week binnen een bepaald thema naar zulke deals. Dit keer: beveiligingscamera's voor rondom het huis.

Met een beveligingscamera houd je je woning rondom in de gaten wanneer je er niet bent of bijvoorbeeld slaapt. De camera's kunnen video's opnemen, maar daarvoor heb je meestal wel een abonnement nodig. Voordeel is dan wel dat je de beelden overal ter wereld kunt terugkijken. Wij vonden vijf modellen, waarvan je er bij een aantal ook nog een extra camera bij krijgt.

Ring Stick Up Cam Battery (2 pack)

De Ring Stick Up Cam is een veelzijdige camera die je zowel binnen als buiten kunt gebruiken. De camera is volledig draadloos en je hoeft alleen maar de opgeladen batterij in de camera te schuiven en de camera te verbinden met je wifi-netwerk via de Ring-app. Omdat de camera draadloos is, kun je hem op vrijwel elke plek zetten, hangen of monteren. Of je nu je huisdieren in de gaten wilt houden in de woonkamer of een oogje in het zeil wilt houden op je oprit, het kan allemaal. De camera geeft heldere beelden in 1080p en heeft ingebouwd nachtzicht, zodat je ook in het donker goed kunt zien wat er gebeurt. Als er beweging wordt gedetecteerd, krijg je indien gewenst direct een melding op je telefoon. De camera heeft ook tweerichtingsspraak, waardoor je kunt communiceren met bezoekers of ongewenste gasten kunt laten weten dat ze gezien worden. Om video's op te slaan en terug te kijken, heb je wel een Ring Protect-abonnement nodig.

Eufy SoloCam S220

Deze camera van Eufy is een ideale oplossing voor wie op zoek is naar een camera zonder gedoe met maandelijkse kosten. Deze camera heeft een ingebouwde batterij én een zonnepaneel. Door het zonnepaneel hoef je de camera bijna nooit handmatig op te laden, want slechts een paar uur zonlicht per dag is al voldoende om hem van stroom te voorzien. De camera is volledig draadloos en eenvoudig te installeren, perfect voor buiten aan een schutting of muur. De beelden zijn in 2K-resolutie, wat zorgt voor een scherpe weergave. De SoloCam S220 heeft een lokaal geheugen van 8 GB, wat betekent dat je al je beelden direct op de camera opslaat. Zo heb je geen abonnement nodig om beelden te bewaren of terug te kijken. Een ingebouwde AI-technologie zorgt ervoor dat de camera het verschil ziet tussen mensen, dieren en voertuigen, zodat je alleen relevante meldingen krijgt.

Google Nest Cam

Deze camera van Google is een veelzijdige optie die zowel binnen als buiten kan worden gebruikt. Het draadloze ontwerp met batterij maakt de installatie heel flexibel, want je bent niet afhankelijk van een stopcontact in de buurt. De Google Nest Cam is weerbestendig en kan dus tegen een stootje van de elementen. De Nest Cam heeft slimme functies, zoals het herkennen van personen, dieren en voertuigen, waardoor je alleen de meldingen ontvangt die je belangrijk vindt. Je krijgt direct een seintje op je telefoon via de Google Home app. De camera biedt 24/7 live-weergave en je kunt de gebeurtenisgeschiedenis van de afgelopen drie uur gratis terugkijken. Wil je langer terugkijken of extra functies, zoals gezichtsherkenning, dan is een abonnement op Nest Aware nodig.

Ezviz BC1C

Met zijn indrukwekkende batterijduur onderscheidt de Ezviz BC1C zich. Volgens de fabrikant kan de camera tot wel 210 dagen meegaan op één oplaadbeurt. Deze camera is volledig draadloos, waardoor je hem overal kunt plaatsen waar je maar wilt, zowel binnen als buiten dankzij de weerbestendige behuizing. De Ezviz BC1C heeft een slimme AI die onderscheid maakt tussen personen en andere bewegingen, wat het aantal valse meldingen flink vermindert. De camera filmt in 1080p en beschikt over kleurennachtzicht, wat betekent dat je ook 's nachts heldere beelden in kleur krijgt, in plaats van de gebruikelijke zwart-wit weergave. Er is 32 GB ingebouwde opslag, dus je hebt geen extra geheugenkaart of abonnement nodig om je beelden te bewaren. Via de app kun je de live beelden bekijken, terugkijken en zelfs praten met mensen aan de andere kant via de tweerichtingsspraak. Dit maakt het makkelijk om bijvoorbeeld een bezorger instructies te geven.

Arlo Essential Wireless Camera + draadloze deurbel

De Arlo Essential is een draadloze buitencamera die ontworpen is voor eenvoud en effectiviteit. Je monteert hem in een handomdraai en verbindt hem via wifi met de Arlo-app. Met een batterijduur van 4 tot 6 maanden hoef je je niet continu druk te maken om de accu. De camera heeft een 130° brede kijkhoek en filmt in 2K-resolutie, zodat je een groot deel van je tuin of oprit in de gaten kunt houden. Een ingebouwde spotlight verlicht de omgeving bij beweging en zorgt voor heldere beelden, zelfs in het donker. De camera beschikt over een sirene die je op afstand kunt activeren om indringers af te schrikken. De beelden worden opgeslagen in de cloud, waar je met een Arlo Secure abonnement toegang toe hebt. De Arlo Essential Wireless Camera wordt aangeboden in een bundel met een extra draadloze deurbel van hetzelfde merk.

▼ Volgende artikel
JBL introduceert de Grip, een speaker zo klein als een blikje
© JBL
Huis

JBL introduceert de Grip, een speaker zo klein als een blikje

Een speaker die je zo in je handpalm kunt zetten, maar toch genoeg 'oomf' heeft om een feestje op poten te zetten. Dat is de nieuwe JBL Grip. Het apparaat is zo groot als een blikje bier (of frisdrank) en past dus makkelijk in een tas of aan je fiets. Toch moet hij genoeg vermogen, slimme functies en een stevig ontwerp bieden om mee te gaan op elk vrolijk avontuur.

De Grip levert 16 watt aan geluid en gebruikt een techniek die AI Sound Boost heet. Daarmee wordt de muziek live geanalyseerd en bijgesteld, zodat de bassen voller klinken zonder dat het geluid vervormt of kraakt. Wie zin heeft in meer volume kan twee speakers koppelen voor stereogeluid, of via Auracast meerdere modellen aan elkaar linken. Zo tover je het compacte speakertje al snel om tot een groter geluidssysteem.

©JBL

Gemaakt om mee te nemen

Met de geïntegreerde lus klik je de Grip eenvoudig vast aan een rugzak, een fiets of zelfs een kajak. Dankzij de IP68-classificatie kan hij bovendien tegen een spatje water, stofje stof of gewoon een stootje. Daarmee mikt JBL duidelijk op buitengebruik: festivals, stranddagen of een lange picknick in het park. De speaker is daarnaast licht en handzaam, waardoor je hem eigenlijk overal kwijt kunt.

Op de achterkant van het apparaatje zit subtiele verlichting die je via de JBL Portable-app kunt aanpassen. Kleuren en intensiteit kunnen worden afgestemd op je afspeellijst of de sfeer van het moment. Oké, het zal niet genoeg zijn om een heel feest van de benodigde verlichting te voorzien, maar het geeft nét een extra laagje beleving. Toch leuk.

©JBL

Accu en extra uurtjes

De Grip gaat ongeveer 12 uur mee op één lading. Wie langer door wil, kan Playtime Boost inschakelen, een functie die nog eens 2 uur extra uit de accu haalt. Daarbij past de speaker zich aan voor een harder en efficiënter geluid. Voor een dag buiten of een lange avond muziek draaien is dat een heel handige toevoeging.

De speaker verschijnt in zeven varianten, van neutraal zwart en wit tot paars, camo en felroze. Er is gekozen voor gerecycled plastic en een verpakking van FSC-gecertificeerd papier. Daarmee sluit de Grip aan bij de trend om dit soort gadgets duurzamer te maken. De adviesprijs bedraagt 99,99 euro en het model is direct verkrijgbaar via JBL.com en verschillende (web)winkels.