WebRTC (Web Real-Time Communication) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. This allows web browsers to not only request resources from backend servers, but also real-time information from browsers of other users.
Contents
This enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.
WebRTC is being standardized by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF). The reference implementation is released as free software under the terms of a BSD license. OpenWebRTC provides another free implementation based on the multimedia framework GStreamer.
WebRTC uses Real-Time Protocol to transfer audio and video.
Support
WebRTC is supported in the following browsers.
As of September 2015, Internet Explorer and Safari still lack the native support of WebRTC but ORTC was already added to the new Microsoft browser, Edge. Several plugins are available to add the support of WebRTC to these browsers. As of April 2016, WebKit, the back-end engine for Appleās Safari has listed support for WebRTC as being in-development.
Video-streaming software support
There are some server-side video-streaming programs that support WebRTC functionality: Flussonic Media Server and Wowza Streaming Engine.
History
In May 2011, Google released an open source project for browser-based real-time communication known as WebRTC. This has been followed by ongoing work to standardise the relevant protocols in the IETF and browser APIs in the W3C.
The W3C draft of WebRTC is a work in progress with advanced implementations in the Chrome and Firefox browsers. The API is based on preliminary work done in the WHATWG. It was referred to as the ConnectionPeer API, and a pre-standards concept implementation was created at Ericsson Labs. The Web Real-Time Communications Working Group expects this specification to evolve significantly based on:
Design
Major components of WebRTC include:
getUserMedia
, which allows a web browser to access the camera and microphone and to capture mediaRTCPeerConnection
, which sets up audio/video callsRTCDataChannel
, which allow browsers to share data via peer-to-peerThe WebRTC API also includes a statistics function:
getStats
, which allows the web application to retrieve a set of statistics about WebRTC sessions. These statistics data are being described in a separate W3C document.As of November 2015, the IETF WebRTC Audio Codec and Processing Requirements draft requires implementations to provide PCMA/PCMU (RFC 3551), Telephone Event as DTMF (RFC 4733), and Opus (RFC 6716) audio codecs as minimum capabilities. The PeerConnection, data channel and media capture browser APIs are detailed in the W3C.
W3C is developing ORTC (Object Real-time Communications) for WebRTC. This is commonly referred to as WebRTC 1.1.
Concerns
In January 2015, TorrentFreak reported that browsers supporting WebRTC suffer from a serious security flaw that compromises the security of VPN-tunnels, by allowing the true IP address of the user to be read. The IP address read requests are not visible in the browser's developer console, and they are not blocked by most ad blocking/privacy add-ons, enabling online tracking by advertisers and other entities despite precautions (however the uBlock Origin add-on can fix this problem).