Web Real-Time Communications (WebRTC) recently became a World Wide Web Consortium (W3C) recommendation and Internet Engineering Task Force (IETF) standard. This is a major milestone on a long journey for WebRTC that started in 2011 with Google open-sourcing key communication technologies and Ericsson implementing the ConnectionPeer API. The new standard will continue to evolve as the WebRTC Working Group strives to integrate new use cases — live processing of audio and video feeds, Internet of Things use cases, and more.
The networking and telecommunications company Ericsson commented on the adoption of the new standard:
At Ericsson, having had a very long history in building person-to-person communication systems, got involved in the early days of the development of WebRTC, to shape this technology for use in different mobile and fixed contexts. The news that WebRTC is now an official global standard means that a stable foundation for building and offering different communication solutions is available to everyone. Now we are taking the next steps to also utilize WebRTC in 5G networks.
WebRTC came at a time when real-time communication (RTC) was complex and expensive, with audio and video technologies that either had to be licensed or developed in-house. Websites that used RTC (e.g., Skype, Facebook, Google Hangouts) often required downloading, installing, updating plugins or native applications — and occasionally, troubleshooting and user support. WebRTC sought to implement open standards for real-time, plugin-free video, audio, and data communication.
Following its acquisition of GIPS, a provider of real-time voice and video processing software for IP networks, Google open-sourced in May 2011 key RTC technologies (e.g., acoustic echo cancellation). WebRTC adoption was not immediate due to discussions over the content and scope of the specifications, and lackluster support from major browsers and communications providers. While Chrome, Firefox, and Opera supported WebRTC early on, Microsoft introduced support in 2015 for a competing set of real-time communications APIs. Apple officially added support for WebRTC with Safari 11 in 2017.
High-level overview of WebRTC (Source: Ericsson blog post)
Fast-forward to today, WebRTC is supported by all major browsers used by 95% of web users. The W3C emphasized the extended adoption of the new standard:
The year 2020 has shown both how critical WebRTC already is in a world where travel and physical contacts need to be limited […].
Organizations are leveraging WebRTC to conduct training, interviews, strategic planning, or as a substitute for in-person meetings to keep connected through happy hour and other social interactions - it is replacing not only in-person meetings, but it is now also replacing the human interactions inside offices. Domains such as healthcare and defense use WebRTC for training. Schools and universities have shifted to virtual learning platforms. Cloud gaming and social networks use live streaming and interactive broadcasts. Entertainment is trying to figure out how to bring the audience back to the studios by doing it remotely. Sports are trying to recreate the in-stadium experience using WebRTC. Families and friends make daily use of products that are built with WebRTC or parts of it.
The W3C also mentioned addressing emerging new use cases through future improvements and additions to the standard: live processing of audio, and video feeds (funny hats), file sharing, Internet of Things, machine learning, virtual reality gaming, untrusted JavaScript cloud conferencing, and more. Follows an example of machine learning algorithm (RAISR) that produces high-quality versions of low-resolution images:
Top: Original, Bottom: RAISR super-resolved 2x. Original image from Andrzej Dragan. Source: Google AI blog
WebRTC is an open framework for the web that enables real-time communications in the browser. It includes the fundamental building blocks for high-quality communications on the web, such as network, audio and video components used in voice and video chat applications. These components, when implemented in a browser, can be accessed through a JavaScript API, enabling developers to easily implement their own RTC web app. The WebRTC effort is being standardized on an API level at the W3C and at the protocol level at the IETF.