An overview of WebRTC

WebRTC is a relatively new streaming technology that provides a scalable low-latency way of transmitting audio, video and data between browsers, desktop applications and mobile devices. Here’s a few thoughts about the technology itself for your consideration.

Main benefits

  • WebRTC is designed to be web-native for browsers. Today, if you are using the latest version of Chrome, Firefox, Edge or Opera, you can receive and send video without downloading any plugins or extensions. Cool. Most of the people commenting on WebRTC future believe that Apple will sooner or later adopt the technology in Safari.
  • WebRTC provides scalable video coding: the bit rate of the video will automatically adjust to the currently available bandwidth.
  • WebRTC is a low-latency streaming technology. Stop, pause and seeking feel just as if playback is done on the local computer.
  • WebRTC is frame accurate, making it possible to perform precise editing on a remote device.
  • WebRTC also supports messages and raw data (files). This makes it easy to build remote interfaces by sending control commands to a remote application.
  • WebRTC is easy for developers. For example, you don’t need to think about codec negotiations (see below). Also, there’s no signaling standard (computers in different networks first need to perform a “handshake” before they can start data transfer) — one can deploy the simplest solution, just enough for his particular use case.

Codecs

The WebRTC standard supports 3 video codecs: VP8, VP9 and H.264. VP8 is used by default, but it is possible to use VP9 or H.264 if this is your preference.

H.264 has the advantage of being available in hardware on billions of devices. VP9 is just beginning to get attention from hardware manufacturers — such as the TEGRA X1 chip from Nvidia. “More than 20 device partners across the industry are launching products in 2015 and beyond using VP9,” — claims Google in the YouTube blog.

The main audio codec is Opus, which is considered to be very fresh and advanced.

See also