WebRTC

Web real time communication

WebRTC (Web Real-Time Communication) is een opensourceprotocol opgesteld door het World Wide Web Consortium (W3C).[1] Dit protocol stelt softwareontwikkelaars in staat om web applicaties voor spraak- en videogesprekken en p2p-bestandsuitwisseling te bouwen zonder noodzaak voor extra plug-ins of software van derden.

WebRTC Logo

Geschiedenis

bewerken

WebRTC werd ontwikkeld door het engineeringteam van Google Hangouts. Tijdens de ontwikkeling van de Google Video Chat-plug-in ontstond het idee om de video- en spraaktechnologie direct in de webbrowser te integreren.

Hiertoe vereist Google een videocodec en een spraakgenerator. Begin 2010 kocht Google On2 Technologies, de eigenaar van de VP8-videocodec, waarna de VP8-videocodec als open-source is aangeboden voor het gebruik in zowel WebRTC als in de HTML5-videotag.[2] Iets later nam Google het Zweedse GIPS (Global IP Solutions) over. De GIPS-technologie vormt de basis van de spraakgenerator in de Google Chrome-uitvoering van WebRTC.

In 2010 investeerde Google in totaal 200 miljoen dollar in WebRTC. De IETF richtte in april 2011 de WebRTC-werkgroep op. Deze kreeg de verantwoordelijkheid om de protocollen, die gebruikt worden in WebRTC, te standaardiseren.[3] In mei 2011 werd de W3C WebRTC-werkgroep opgericht om een set van gestandaardiseerde api's te ontwikkelen die de deelnemende browserverkopers zouden uitvoeren.[4]

Functionaliteit

bewerken

WebRTC-applicaties ondersteunen verschillende functies, namelijk:

  • Realiseren van audio- en videostreaming of andere data.
  • Ophalen van netwerkinformatie zoals IP-adressen, poorten en uitwisseling van deze gegevens met andere WebRTC-clients om verbinding in te schakelen, zelfs via NAT en firewalls.
  • Informatie uitwisselen over media- en clientfaciliteit, zoals de resolutie en de codecs die worden gebruikt.

Ontwerp

bewerken

De belangrijkste onderdelen van WebRTC zijn:

  • getUserMedia: dit geeft de webbrowser toegang tot de camera en microfoon.
  • PeerConnection: de WebRTC-component die een stabiele en efficiënte communicatie van datastreaming tussen peers behandelt.
  • DataChannels: hiermee delen browsers gegevens via peer-to-peer (p2p). De RTCDataChannel-API maakt peer-to-peeruitwisseling van willekeurige data mogelijk, met een lage latentie (vertraging) en een hoge doorvoer.

Ondersteuning

bewerken

WebRTC wordt ondersteund door volgende browsers:

  • Google Chrome: de eerste browser die zowel getUserMedia en PeerConnection ondersteunde. De RTCDataChannel API wordt nog niet ondersteund.[bron?]
  • Apple Safari: Safari ondersteunt de WebRTC API's sinds 2017.[5]
  • Microsoft Edge
  • Mozilla Firefox: deze ondersteunt alle drie de WebRTC API’s
  • Opera: Opera 12 ondersteunt alleen de getUserMedia API.

Andere partijen zoals Microsoft, Ericsson, Cisco en kleinere real-time-communicatiebedrijven bieden momenteel[(sinds) wanneer?] nog geen ondersteuning.

Mobiele browsers

bewerken

De webbrowsers Chrome, Firefox en Opera ondersteunen WebRTC ook op Android. De mobiele versie van Firefox ondersteunt WebRTC sinds 17 september 2013.[6] Google Chrome heeft ondersteuning vanaf versie 28 (deze staat standaard aan in 29+) en ook Opera Mobile 12+ ondersteunt WebRTC. Sinds Apple iOS 11 ondersteunt ook de mobiele versie van Safari WebRTC .

Voordelen

bewerken
  • Betere videokwaliteit: WebRTC-videokwaliteit is merkbaar beter dan Flash.
  • Verminderde audio/video latentie: WebRTC biedt een significante verbetering in latentie, hetgeen natuurgetrouwe gesprekken toestaat.
  • Tot zesmaal snellere verbindingstijden
  • Native HTML5-elementen: Met de nieuwe videotag in HTML5, is de vormgeving bewerkbaar zoals elk ander element op een webpagina.

Nadelen

bewerken
  • Browserincompatibiliteit:
    • De verschillende WebRTC-applicaties worden nog niet ondersteund in alle browsers en het is nog niet mogelijk dat WebRTC-applicaties samenwerken tussen alle browsers.
    • Rond Apple blijft het momenteel[(sinds) wanneer?] stil, er wordt geen informatie verstrekt over het ondersteunen van WebRTC. WebRTC-implementaties werken niet in Safari.
  • Webbrowsers kunnen het niet eens worden over welke videocodec gebruikt moet worden in WebRTC. Google Chrome, Mozilla Firefox en Microsoft Edge gebruiken VP8 en VP9.

Verschillende codecs:

Bedrijf VP8 H.264
Google X
Mozilla X
Opera X
Cisco X X
Microsoft X X
Apple X
Ericsson X

Zie ook

bewerken
bewerken