What is WebRTC?

WebRTC is peer-to-peer real-time audio, video and data exchange for your website and application

With WebRTC browsers and apps learn to talk to each other instead of just to web servers. They can share audio and video streams from your microphone and camera, exchange files and images or just send and receive simple messages the fastest possible way: peer-to-peer.

Introduction


Distributed Communication




Peer-to-peer, or P2P, describes a connection from a client device to another client device without the use of servers. It's your mobile phone directly connecting to your colleague’s laptop at work, or to your friend’s tablet at home. With the new open web-standard, WebRTC and its RTCPeerConnection API, your web browser has learned how to do just that, so that data transport from one web browser to another web browser is now possible.


Optimized for low latency

WebRTC was designed to use the UDP/IP protocol for transport. This protocol, mixed together with WebRTC's smart video and audio-codec means WebRTC is designed for low-latency and maximum throughput.

WebRTC is a great technology for

Think twice before using WebRTC for

Audio, Video, Data

Access to camera, microphone and screen

With the getUserMedia API, WebRTC gives your website access to your users microphone, camera and, with the help of browser extensions, your desktop, to send those streams between connected parties, live. The browser makes sure the user is aware that they are granting access to the microphone and camera, and the user must agree to this before being connected to the service.

Screensharing: A simple how-to with SkylinkJS




/*
 * Retrieve camera and microphone
 * stream object
 */
navigator.getUserMedia({
    audio: true,
    video: true
}, function (stream) {
    // Use audio/video stream
}, function (err) {
    // Handle errors
})

File transfer and messaging


The RTCDataChannel API allows you to send large chunks of binary data and simple text messages from one peer to another. It's great for application event message exchange or live transfer of images, songs, movies, documents and other files.


All peer-to-peer data and stream transport is encrypted using DTLS-SRTP. To make full use of WebRTC's features your website must use HTTPS with TLS.
Compatibility

WebRTC works today in 67.31% of browsers and in more than 96% of native mobile environments in use.

Is your browser compatible? (by Netscan)

Desktop iOS Android Windows Phone
Chrome Firefox Edge IE Safari Opera App Safari App Chrome Firefox Opera Browser App Edge IE
Past 23 22 18 4.2 29 24 20
47 43 8 6 34 6 6 4.3 47 43 33 2
48 44 9 7 35 7 7 4.4 48 44 34 3 7
49 45 12 10 8 36 8 8 5 49 45 35 4 8 12 10
Today 50 46 13 11 9 37 9 9 6 50 46 36 50 10 13 11
Future 51 47 14 10 38 10 10 7 51 47 37 51 11 14

WebRTC support
WebRTC support with the Temasys WebRTC Plugin or the Skylink SDKs for Web, iOS and Android
ORTC support, WebRTC adapter available

State: May 2016, Sources: caniuse.com and Temasys Communications Pte Ltd




Performance


Multi-Party Conferencing even on mobile











WebRTC boasts some surprising performance on the client-side. Using a recent mid-end mobile phone you can already host audio/video conversations with 4 and more people.

What performance can you expect?


Max. participants* P2P MCU
Audio only 12 22
Audio/Video 6 10
Max. participants* P2P MCU
Audio only 8 14
Audio/Video 4 6

* Recommended maximum number of participants per session based on recent mid-end device performance with and without Multi-Cast Unit support (MCU). Depends strongly on available bandwidth and CPU speed and varies with different audio/video-codecs. Complex UI or background workers can reduce these numbers.



Peer-to-peer connectivity is great for real-time audio/video exchange most of the time, but there are some network situations and more demanding performance use-cases that make for a tough peer-to-peer user experience. This is when you need a Media Relay Service like TURN or an MCU to help out.



Skylink Media Relay Services for WebRTC



How it works




Thomas Gorissen's round-up on WebRTC at JSConf EU 2015 in Berlin.
Learned something? Share this with your friends and colleagues:






Usage examples


Healthcare anywhere!

  • WebRTC enables two-way video calls between patients and doctors
  • Communication is embedded as a feature, in the context of a comprehensive user experience for patients and doctors

“Using the latest in browser video conferencing technology, Medifi allows a richer, more comprehensive remote consultation experience, much better than traditional phone call based sessions.”
- Freddy Gonzalez, CEO
Build with www.medifi.com

Beyond chat, beyond simple!

  • WebRTC multi-party conferencing and file-sharing to support collaboration
  • Cross-device implementation on Web, Android and iOS
Build with www.chatwork.com

Get started with WebRTC using SkylinkJS

More Resources



We help craft WebRTC
as part of
{
IETF Rtcweb Status Pages

WebRTC 1.0:
W3C Working Draft




If you found this interesting, please share this with your friends
and colleagues and subscribe to our newsletter below: