What is WebRTC?

WebRTC (Web Real Time Communications) is a standard that enables real-time peer-to-peer communication and media data exchange in browsers, eliminating the need to download and install extra applications or add-ons. Thanks to WebRTC, any browser can act as a video conferencing endpoint: you only need to open your meeting web page to start video conferencing. This article describes WebRTC, its popular use cases, as well as advantages and disadvantages of this technology.

What is WebRTC

WebRTC Use Cases

WebRTC is

TrueConf Server is a self-hosted SVC-based video conferencing system that operates both in LAN/VPN and over the Internet. The webinar server is deployed on your company’s premises, restricting third-party access to your personal data. TrueConf might be a good solution for virtual event broadcasting, distance learning and remote work thanks to 4K resolution video and a number of collaboration tools.

Google Meet

Google Meet is an instant messaging, audio and video communication service launched by Google in 2017. Chromium-based browsers (Google Chrome, etc.) use many hidden WebRTC features that aren’t described in tech specs. New WebRTC releases are usually integrated into Google Meet (as with its predecessor, Google Hangouts), e.g. screen capture, blurred background and hardware encryption for some platforms.

Jitsi Meet

Jitsi Meet is an open-source application released by 8x8. Jitsi technology is based on Simulcast architecture, which means the service may operate unstably in low bandwidth and require high-speed Internet connection on the server side. Jitsi supports browser-based conferences only and doesn’t provide full-fledged video conferencing applications. With Jitsi, it is possible to accommodate up to 75 participants in a meeting (up to 35 for high-quality experience). However, Jitsi is not a ready-made solution, so to make full use of Jitsi in a corporate environment, you will need advanced programming skills.

BigBlueButton

BigBlueButton is a free-to-use video conferencing software with a strong education focus. BigBlueButton supports video meetings with up to 100 participants and provides a lot of features essential for distance learning, e.g. interactive whiteboard, content sharing, polls, breakout rooms and more.

What about Zoom WebRTC?

Contrary to popular belief, Zoom doesn’t use WebRTC technology to transfer and decode media data in order to save server resources. On the browser side, Zoom involves other web technologies, such as WebAssembly and WebSocket. Non-standard approaches to transferring video streams may result in low audio and video quality and connectivity problems.

How WebRTC Works

Let’s see how WebRTC technology works using a peer-to-peer browser-based call as an example:

WebRTC example
  1. A user opens a WebRTC page.
  2. A browser may request access to a webcam and a microphone. In this case, a user needs to grant a permission for the WebRTC app to have access to the user's devices. There are also cases when this permission is not required, e.g. when watching a live stream.
  3. TrueConf Server
  4. Session Description Protocol (SDP) packet is generated in the browser that initiates connection. In fact, it is a text file that contains important connection details, e.g. media data type (audio, video or content), codecs, what parameters are supported by a browser, etc.
  5. Depending on how the technology is implemented, a connection initiator transfers this packet to other participants. A signaling server and WebSocket protocol are often used for this purpose.
  6. On the receiving side, a browser receives an SDP packet and then generates a similar one which also takes on the data from the first packet. The second packet is sent back to the initiating side. Now both clients have already gotten to know each other in some ways.
  7. Depending on its implementation, the network connection state is being analyzed along with the previous steps. Clients are provided with a STUN server address that’s used to find out the device’s external IP address. It is then compared to the internal IP address to determine whether NAT is being used with the connection and, if so, how UDP packets are routed. In more complex cases, e.g. when double NAT is used, developers use TURN servers. They are essentially repeaters turning a peer-to-peer (P2P) connection into a client-server-client one.
  8. Once these steps are successfully completed, the connection is established. The onicecandidate event is invoked periodically to transfer information about IP addresses, NAT settings and connection attempts between clients.
  9. WebRTC leak prevent

WebRTC on Mobile Devices

Advantages

  • No software installation required.
  • High-quality communication thanks to:
    • Modern video and audio codecs
    • Automatic quality adjustment
    • Embedded echo and noise cancellation
    • Automatic Gain Control (AGC).
  • Strong security focus: all connections are protected and encrypted according to the DTLS and SRTP protocols. At the same time, WebRTC operates only over the HTTPS protocol, while a website using this technology should have a signed certificate.
  • SVC support added as part of the VP9 and AV1 codec implementation. Despite the fact that browsers do not support SVC yet, TrueConf enables SVC in browser clients.
  • Native desktop sharing feature.
  • Control interfaces based on HTML5 and JavaScript.
  • Open-source project that can be embedded into your product or service.
  • Cross-platform: WebRTC application works equally well with any operating system—desktop or mobile—if a browser supports WebRTC. This significantly saves software development resources.

Disadvantages

  • WebRTC solutions are incompatible with each other, as the standard only describes the methods to transfer video and audio data, enabling developers to decide on addressing methods, status tracking options, message and file exchange, scheduling, etc. In other words, you can’t make calls from one WebRTC application to another.
  • Security-conscious users will be disappointed to know that WebRTC detects their real IP addresses. At the same time, neither a proxy nor the Tor network will help remain anonymous. You can hide your IP address using various VPN services and the TURN server. If necessary, WebRTC can be disabled.
  • WebRTC doesn’t support remote desktop control. Of course, you can stream what’s happening on your device’s screen, but it is a one-way video stream like an image transmitted from a camera, while there is no way to interact with a stream source. This is done for security reasons: Javascript code can’t control anything outside its current browser window. You can get more features, including remote desktop control, by using client applications customized by video conferencing vendors.

WebRTC and Video Conferencing Market

Technology’s Popularity

Today, WebRTC is the second most popular video protocol after Zoom's proprietary one. WebRTC outpaces all other standard (H.323 and SIP) and proprietary (Microsoft Teams and Cisco Webex) protocols.

A Rise in Video Conferencing Endpoints

WebRTC technology has had a profound impact on the video conferencing market. Upon release of the first browsers with WebRTC in 2013, the potential number of video conferencing endpoints has increased by 1 billion devices worldwide. In fact, each browser is now a video conferencing endpoint with basic capabilities.

Customized Solutions

Various JavaScript libraries and cloud APIs with WebRTC support enable you to add video support to any web project. Previously, transferring data in real time required advanced programming skills and additional licensing, which resulted in cost increase. Today, WebRTC is widely used to organize video-enabled contact centers, hold webinars, etc.

WebRTC vs Flash

WebRTC and HTML5 were a kill shot for Flash that was already going through its hard times. Since 2017, the leading browsers have officially ceased to support Flash, forcing this technology to vanish from the market completely.

WebRTC Aspects

WebRTC Codecs

WebRTC codecs can be divided into mandatory (it is required for the browsers implementing this technology to support these codecs) and optional (non-standard, although some browsers support them).

Audio Codecs

To compress audio traffic, WebRTC uses mandatory (Opus and G.711) and optional codecs (G.722, iLBC, iSAC).

Opus is a low-latency (2.5 ms to 60 ms) audio codec with variable bitrate support and high compression, which is perfect for streaming audio in variable bandwidth networks. Opus is the primary audio codec for WebRTC. It is a hybrid solution that combines the best features of SILK (voice compression and human speech enhancement) and CELT (audio coding) codecs. The codec is open and completely royalty-free. Undoubtedly, Opus outperforms other audio codecs in many ways. As to the number of parameters, it outperforms rather popular low bitrate codecs, such as MP3, Vorbis and AAC LC. Compared to AMR-WB and Speex, Opus restores the audio structure that is the closest to the original.

G.711 is a legacy high bitrate (64 kbps) speech codec designed for use in traditional VoIP systems. The main advantage is the minimum computational load thanks to the lightweight compression algorithms. The codec has a low compression level of audio signals and doesn’t augment audio delay in the communication between users.

G.711 is supported by many devices. Systems that utilize this codec are easier to use than those based on other audio codecs, such as G.723, G.726, G.728, etc. In terms of quality, G.711 scored 4.2 in MOS testing (a score of 4–5 is the highest one and means good quality similar to voice traffic quality in ISDN and even higher).

Being royalty-free, G.722 is an ITU-T standard adopted in 1988. It can operate at 48, 56 and 64 kbps, providing audio quality equal to G.711. Similarly to G.711, it’s legacy but still supported by Chrome, Safari and Firefox.

iLBC (internet Low Bitrate Codec) is an open-source narrowband speech codec supported by Chrome and Safari. Due to the high stream compression, this codec increases the CPU load.

iSAC (internet Speech Audio Codec) is a formerly proprietary wideband speech audio codec that is now part of the WebRTC project. However, it’s not mandatory but supported by Chrome and Safari. In the case of WebRTC, it uses an adaptive bitrate from 10 to 52 kbps with a sampling rate of 32 kHz.

Video Codecs

What video codec to choose for WebRTC? Developers had to think it over for several years, and the answer is VP8 and H.264. There are also optional video codecs (H.265, VP9 and AV1).

VP8 is a royalty-free open video codec featuring high video decoding speed and enhanced frame loss resistance. The codec is multifunctional: it’s easy to integrate into hardware platforms, so video conferencing providers often use it in their products. It’s compatible with Chrome, Edge, Firefox and Safari (12.1+).

The paid video codec H.264 came to be known much earlier than its counterpart. This codec offers a high compression ratio for video streams while maintaining high video quality. Widely used in hardware video conferencing systems, it’s perfect for WebRTC. It’s compatible with Chrome (52+), Edge, Firefox (no longer supported in versions 68+ for Android) and Safari.

VP9 is an open and royalty-free video compression standard developed by Google in 2012. Subsequently expanded within AV1It, it results from the ideas behind VP8. This codec is compatible with Chrome (48+) and Firefox.

H.265 is a paid video codec seen as a successor to H.264 and providing the same visual quality at half the bitrate. This is possible thanks to more efficient compression algorithms. This codec is currently competing with royalty-free AV1.

AV1 is an open-source video compression codec purpose-built for video transmission over the Internet. It’s supported by Chrome (70+) and Firefox (67+).

“Compatible with Chrome” means the compatibility with all Chromium-based browsers in the corresponding versions.

WebRTC Connection

Depending on your WebRTC implementation, there may be certain differences in the compatible browsers’ versions. Learn more about desktop and mobile browsers supported by TrueConf here.

If you’re eager to know how the WebRTC technology will develop, we recommend that you visit its official website, WebRTC project website and repository.


Deploy your own webinar server in 15 minutes!