What Is WebRTC?May 18, 2020
Mission-critical services ranging from emergency response to telehealth now depend on interactive live streaming — and WebRTC is an essential technology powering this development. The Web Real-Time Communication (WebRTC) framework delivers instantaneous voice and video streaming without requiring any plug-ins. In other words, it allows users to initiate click-to-start video chats from their browsers and exchange information quickly enough to replicate in-person interactions.
The benefits of WebRTC are numerous. Sub-500-millisecond video delivery makes it the lowest-latency streaming technology around, and native browser support eliminates the need to download any clunky apps.
Even so, when you branch out from the pure chat-based applications that WebRTC was designed for, challenges can arise. This article takes a look at how WebRTC video streaming works, the benefits this technology delivers, WebRTC’s limitations, and how to solve them.
What Is WebRTC?
How Does WebRTC Work?
WebRTC employs three HTML5 APIs that allow users’ browsers to capture, encode, and transmit live streams between one another, enabling two-way communication. For this reason, WebRTC is referred to as peer-to-peer technology, whereby each browser communicates directly with one another.
The beauty of WebRTC lies therein: It eliminates the need for any intermediary web servers during these exchanges, not to mention additional equipment or software. URL-based meeting rooms are an excellent example of the convenience and real-time communication delivered by WebRTC.
While some streaming workflows require an IP camera, encoder, and/or streaming software, the simplest WebRTC deployments can accomplish everything with a connected webcam and browser. And unlike Flash-based video, WebRTC can be played back on any HTML5 player.
However, because WebRTC was designed for native information exchange without an intermediary server, it can’t handle large audiences. Anyone looking to stream WebRTC at scale will require the help of a streaming server or service.
WebRTC Technical Specifications
- Audio Codecs: Opus, iSAC, iLBC
- Video Codecs: H.264, VP8, VP9
- Playback Compatibility: Chrome, Firefox, and Safari support WebRTC without any plugin
- Benefits: Super fast and browser-based
- Drawbacks: Designed for video conferencing and not scale
- Latency: Sub-500-millisecond delivery
WebRTC started as a Google open-source project aimed at giving browsers the ability to support real-time voice and video communication without any plug-ins. In many ways an antithesis to proprietary streaming technologies like RTMP and Flash, WebRTC has since been standardized by the IETF and W3C. WebRTC has grown in the decade that’s followed since its initial development to combine the power of a community-driven project with the cross-platform support of a well-established specification.
Today, WebRTC is supported across Chrome, Safari, Firefox, Opera, Microsoft Edge, Android, and iOS. It’s also the technology powering video chat on Google Hangouts, Facebook Messenger, and Houseparty — to name a few. According to Google, “with Chrome, Edge, Firefox, and Safari supporting WebRTC, more than 85% of all installed browsers globally have become a client for real-time communications on the internet.”
When considering the many advantages that WebRTC delivers to both users and developers, it makes sense why there’s so much hype surrounding it. Everything from low-latency delivery to interoperability make it an attractive choice.
- Inherently Low Latency. WebRTC knocks it out of the park when it comes to delivery speed. At sub-500-millisecond glass-to-glass latency, WebRTC offers the quickest method for transporting video across the internet.
- Platform and Device Independence. All major browsers and devices support WebRTC, making it simple to integrate into a wide range of apps without dedicated infrastructure. Since WebRTC makes use of HTML5 APIs, it allows you to utilize many of the features built into the HTML5 programming language through a lightweight, embedded framework. What’s more, browser-based encoding ensures a more accessible end-user experience for all.
- Open Source and Standardized. The open-source framework is standardized by the IETF and W3C, thereby eliminating any interoperability challenges that come with proprietary streaming technologies. Computerworld’s Shan Sinha explains, “WebRTC benefits from having thousands of software developers working on it in concert, standardizing conferencing protocols and making interoperability less of a concern. Most companies can’t compete with thousands of independent developers contributing code to a platform — even organizations as large as Google and Apple pale in comparison to a web community-driven effort.”
- Adapts to Network Conditions. WebRTC ensures reliable publishing over poor network conditions with adaptive network encoding. That’s because it supports a capability called ‘simulcasting’ — not to be confused with broadcasting to multiple destinations, which is the traditional definition of that term. With WebRTC simulcasting, the client generates multiple streams at varying bitrates and quality, so that poor network conditions don’t hinder video contribution. Unlike adaptive bitrate streaming, where the stream dynamically adjusts during playback, this takes place at the publishing side and provides multiple encodings rather than the ability to adapt bitrate mid-stream.
Low-latency delivery takes the highest priority with WebRTC streaming. As a result, scale and quality have limitations when deploying WebRTC without any additional technologies.
- Scalability. WebRTC simply wasn’t designed with scalability in mind. The bandwidth-intensive configuration requires each participating browser to connect with each other via a peer connection. To put that into perspective, WebRTC expert Tsahi Levent-Levi recommends staying shy of any more than 50 concurrent peer connections.
- Broadcast Quality. A common misconception is that WebRTC lacks in quality due to bitrate limitations. While browser-based contribution is inherently connectivity- and camera-dependent on the resolution front, high-bitrate encoding is still possible. That said, WebRTC sacrifices B-frames from the GOP structure to enable real-time delivery, which can impact quality.
Solving for WebRTC Scalability
In a traditional peer-to-peer WebRTC connection, each browser connects directly to all the other browsers in the group — burning up bandwidth in the process. But by connecting all participants to a live streaming server like Wowza Streaming Engine, each browser only needs to publish streaming content to the media server. This allows for real-time streaming at a larger scale, while optimizing bandwidth by minimizing the number of connections each client must establish and maintain.
What’s more, a live streaming server or cloud-based service can be used to transcode the WebRTC stream into a protocol like HLS for distribution to thousands. That way, content distributors can combine simple, browser-based publishing with large-scale broadcasting — albeit at a slightly higher latency.
Why Combine WebRTC With Wowza
Whether you need to support real-time interactivity or broadcasting at scale, Wowza’s WebRTC solution can be customized to your needs. Organizations in industries ranging from retail to gaming rely on Wowza-powered WebRTC for browser-based ingest, low-latency, and large-scale video distribution.
- Expanded possibilities. Anyone looking to add additional functionality to WebRTC — including video recording, security, and other enhancements — needs a powerful streaming software behind the curtain. Wowza provides powerful tools, APIs, and modules to enhance WebRTC’s out-of-the-box features. Our live streaming platform also empowers content distributors to build hybrid workflows that combine WebRTC with other streaming protocols that better suit their needs.
- Endless scaling. While designed for video chat environments with only a handful of participants, WebRTC can be combined with Wowza’s technology for broadcasting to thousands. Any incoming WebRTC streams can be transcoded into an HTTP-based protocol like HLS or MPEG-DASH for large-scale distribution. Both Wowza Streaming Engine and Wowza Streaming Cloud make this process seamless.
- Simple, browser-based broadcasting. WebRTC powers browser-based publishing, and with Wowza in the background, you’re able to broadcast the content to countless users. Our enhanced live stream workflow and the new WebRTC publishing page delivers simple end-to-end broadcasting to any destination — without the need for an encoder.
Find out more about enhancing WebRTC with Wowza in the videos below.
Wowza Streaming Engine and WebRTC
WebRTC powered by Wowza Streaming Engine allows you to transcode, restream, and enhance WebRTC’s capabilities in powerful ways.
Wowza Streaming Cloud and WebRTC
With Wowza Streaming Cloud, you’re able to easily capture WebRTC streams from any browser and broadcast to any destination.
Described by Mozilla co-founder Brandan Eich as “a new front in the long war for an open and unencumbered web,” WebRTC combines browser-based streaming with real-time interactivity. The free, open framework works great for small video-based environments. And when large-scale distribution or additional streaming features are also required, Wowza’s technology provides the necessary boost.