WebRTC
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.
Geschiedenis
[bewerken | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 |
---|---|---|
X | ||
Mozilla | X | |
Opera | X | |
Cisco | X | X |
Microsoft | X | X |
Apple | X | |
Ericsson | X |
Zie ook
[bewerken | brontekst bewerken]Externe links
[bewerken | brontekst bewerken]- Officiële website
- W3C Web Real-Time Communications werking groep
- IETF Real-Time Communication in WEB-browsers (webrtc) werkgroep
- Google's open source WebRTC software project
- ↑ Alan B Johnston & Daniel C Burnett (2013). Webrtc - APIs and Rtcweb Protocols of the Html5 Real-Time Web. Applicatieontwikkeling: 1-274. Gearchiveerd van origineel op 12 oktober 2013. Geraadpleegd op 6 november 2013.
- ↑ Google release of WebRTC source code from Harald Alvestrand on 2011-05-31. public-webrtc@w3.org. Geraadpleegd op 6 november 2013.
- ↑ Charter of the Real-Time Communication in WEB-browsers (rtcweb) working group
- ↑ WebRTC 1.0: Real-time Communication Between Browsers. Dev.w3.org. Geraadpleegd op 6 november 2013.
- ↑ (en) Announcing WebRTC and Media Capture
- ↑ (en) WebRTC Now Available Across Mobile and Desktop with new Firefox for Android Compatibility