WebRTC is a free, open project that provides browsers and mobile applications (e.g. Chrome, Opera, and Firefox) with real-time communication capabilities over peer-to-peer networks, using simple APIs and without plugins or apps. Here, we detail two innovative integrations and use cases of WebRTC to enable low-latency streams.
CDN77 Brings WebRTC-2-CDN
The Problem With the Internet
The Internet has a big problem, according to CDN77, and it’s hurting the speed and quality of data delivery. In this day and age, buying an interconnection with a Tier 1 network, that peers with every other Tier 1 network transit- and settlement-free, isn’t enough to ensure connectivity.
The problem is that big operators (i.e. Orange, Telefonica, Hinet, and Deutsche Telekom) have throttled access, even to uplinks from Tier 1 networks, leading to higher latency and significant packet and traffic loss at peak hours. The issue has gotten so severe that some Tier 1 companies have baked caveats into their contracts noting that they can’t guarantee connectivity to some of the largest IP networks in the world. Because large ISPs in effect have local monopolies, they have the leverage to try to squeeze exorbitant amounts of money from customers in exchange for direct access to end users within their fiefdoms.
One way to circumvent this issue is to allow users within a network to leverage what they’ve already downloaded and share it with each other, effectively creating a network within a siloed network. Such a peer-to-peer (P2P) connection would be backed by a CDN so that if it drops out, a CDN can swoop in.
There are a number of benefits to this solution. Because ISPs don’t limit connectivity within their networks, users can connect to each other without restriction. In fact, the more, the merrier in this case, because distributing the uplink among more users would speed up the connection.
This also makes traffic peaks more manageable and translates into big traffic cost savings for content providers, who only need to stream to a fraction of the end users and let P2P take care of the rest. The solution has a built-in fallback because content providers can connect to a classic CDN edge server if that is the most optimal delivery route.
CDN77 has ushered the above scenario into reality by coming up with a way to integrate WebRTC, which enables real-time communications between browsers via simple APIs and without plugins or apps. The result is WebRTC-2-CDN. As the name suggests, it combines the peer-to-peer connections between browsers that are enabled by WebRTC with CDN77.
The integrated solution actively analyzes and monitors requests, and selects the most optimal route for a packet, whether it’s from interconnecting peers or a CDN edge server. Content providers can even use it to deliver to Android mobile users through mobile browser applications like Chrome, Firefox, and Opera, which support WebRTC. Other mobile users would be served directly by CDN77. Conversely, mobile users have been excluded from upload peering so they don’t have to worry about using up their precious mobile data.
You can check out the live technology demo of WebRTC-2-CDN here. CDN77 plans to integrate WebRTC in Q1 of 2017 and offer it as a feature on its CDN dashboard.
Wowza Streaming Engine Supports WebRTC
It looks like Wowza also had some similar ideas about the potential of WebRTC to power low-latency P2P communications between browsers, such as video chats. Wowza Streaming Engine now supports WebRTC, enabling real-time communication between browsers without plugins.
The solution enables two major workflows:
Workflow 1: Browser as encoder
Without a plugin and by using Wowza Streaming Engine, users with WebRTC browsers can generate, record, and deliver low-latency WebRTC-encoded streams to other users. The WebRTC browser encodes the video and sends it into Wowza Streaming Engine. Wowza Streaming Engine then takes that WebRTC content from the web browser and does one of two things. It either distributes the stream back out through WebRTC, or it records, transmuxes, and transcodes it to other streaming protocols (e.g. Apple HLS, HDS, RTMP, RTSP, and Smooth Streaming) to enable real-time delivery to other browser-based players, with only 150 ms latency. Broadcasters can also synchronize real-time overlays for commentary, scores, and updates.
Workflow 2: Few-to-few web conferencing
Using general, out-of-the-box WebRTC, a 3-4 person web conference requires each user to connect to every other user, resulting in a complex, mesh network that increases the bandwidth load for all participants. That bandwidth need would grow significantly as more users enter the conference.
In multi-user scenarios, Wowza Streaming Engine allows for both passive and active users and sends multiple streams through a central hubs, rather than from user to user. This means that each active participant in a chat only has to send out a single stream and consume multiple streams, greatly reducing bandwidth consumption.