WebRTC has emerged as an undeniable force in the modern communication and video conferencing landscape, making a significant impact on industries that depend on real-time communications. Industries ranging from education to telecommunications have seen WebRTC become an industry standard for developing cost-effective and user-friendly video streaming technology. In a world where plugins were viewed increasingly as annoying and intrusive security risks, web developers suddenly had a brand new plugin-free tool in their belt allowing them to create immersive applications that brought people together in new and exciting ways. A true peer-to-peer option for video communication had finally emerged with the arrival of WebRTC.
WebRTC excited CTOs around the world due to the peer-to-peer capabilities it provided and its non-reliance on plugins or native technology. But there is a reason that it took so long for the web development community to agree on a standard for peer-to-peer media streaming. It’s hard — very hard. Streaming live video from a camera to another device may sound simple, but there are many moving parts in a real-time peer-driven media application. Networks are messy and complicated to navigate. Codecs are often proprietary and incompatible. Each application’s requirements are as unique as the next. There is a continual drive to reduce connectivity time and improve performance. It has been years since WebRTC first surfaced, and the web community is still not yet in agreement on all points.
Before getting into WebRTC itself, let’s take a step back and look at peer communications — why go peer-to-peer at all? Why not just stream data up to and down from a server? In many cases, this may actually be preferable, particularly when we’re dealing with a large number of users, but there are also several advantages to sending data directly between peers and bypassing the server.
First, the pros: lower latency and lower costs. Lower latency is one of the strongest technical arguments for peer-to-peer connections. All things considered equal, sending media directly between peers can cut latency down significantly. Second, the lower costs. Bandwidth may be relatively cheap, but it can still add up in a hurry, especially when you have a few hundred or a few thousand subscribers pushing several megabits per second of data per video call up to your server. Running the media plane between peers translates to a big reduction in server-side resources.
However, there are cons to peer-to-peer communications. Peer-to-peer topologies are inherently more complicated and require specialized servers to negotiate firewalls and form connections. There’s also less control. By allowing the media to flow directly between peers, we inherently give up a piece of control. The media sent between peers can’t be inspected, controlled, or recorded without client agreement. For heavily regulated industries like healthcare and telecom, an intermediary server may be required to satisfy requirements like lawful interception on behalf of government agencies.
WebRTC is much more than just networking, though. Connections by themselves have limited usefulness if we don’t have a stream of audio or video to send or the capacity to receive incoming media. Inside a web browser, HTML5 gives us the ability to capture local audio and video from a connected microphone, camera, or other media device registered with the operating system. WebRTC allows these local media streams to be attached to a peer connection to stream their contents out to remote peers, as well as getting a media stream to handle the incoming audio and video from a remote peer.
The last part of WebRTC, which isn’t actually part of WebRTC, is signaling. Signaling is what allows a device to initiate a peer connection to another device. Since both sides in a peer connection typically connect to the Internet from behind a firewall or router, each peer must connect to a common signaling server that allows them to talk to each other, at least a little bit, before the establishment of a peer-to-peer connection.
While it’s still a relatively new technology, WebRTC has changed how we all communicate with one another, and there are still ways it’s being used and transformed to meet the demands of an ever-evolving technological society. It provides a cheaper way to establish peer-to-peer connections while providing high-quality footage with fewer delays. For anyone monitoring the live streaming, video conferencing, or new forms of virtual communication that have become more prevalent over the past 14 months, WebRTC is a topic you should track closely.
About the Author
Anton Venema is the Chief Technology Officer for Frozen Mountain/LiveSwitch Inc. He is one of the world’s foremost experts on RTC solutions, as well as the technical visionary and prime architect of our technology.