Hey, Cameron here!
I promise not to sell your address or spam you.
I want to send you specific WebRTC material so useful, that you say wow!
- Cameron Elliott
Digital video is ubiquitous these days, it’s everywhere. But the primary technology used for the digital video distribution is HTTP segment-based adaptive streaming. This is the basic framework around which technologies like DASH and HLS work.
Segment based adaptive steaming is great for reuse of current HTTP tools and HTTP based CDN platforms. But the nature of retrieving segments or chunks from sources or CDNs means that your source to playback latency is usually a minimum of your segment duration, easily 30 seconds end-to-end.
Why isn’t this good enough?
This is problematic, because segment-based technologies struggle to achieve latency under 10 seconds, some vendors say their highly tuned stacks can achieve two seconds. But don’t think this easy is going to be easy. Segment based video just wasn’t designed for low latency.
The claims on latency for WebRTC latency vary between 200ms and 500ms. Keep in mind ping time between NYC and Los Angeles is just under 70ms, and front end ingest can play a big part in total latency.
There are a ton of applications where sub-second latency can enhance or even make or break the viability of the application.
Some application examples:
Below we explore some of the different way you can implement WebRTC Live Streaming. included are some of the different offerings and vendors that can help. The lists below are not exhaustive, but represent some popular and visible choices.
These cloud solutions offer a quick way to get up and running with low-latency live streaming based upon WebRTC.
Millicast bills themselves as a
Realtime CDN built for large-scale video broadcasting on any device, with sub-second latency. The teams behind Millicast have a very WebRTC centric background including TURN services, and research in WebRTC. My take on Millicast is that it is a WebRTC-first offering built specifically for WebRTC.
Red5Pro describes their service as
Low Latency WebRTC Live Video Streaming at Scale. According to their site, the Red5Pro server started around 2005 by reverse engineering RTMP. On github, the red5-server repo has releases as far back as 2014. So, Red5Pro was not built around WebRTC as Millicast has been. Their are pros and cons to this. Red5Pro might offer more delivery mechanisms than the WebRTC-first offerings.
Limelight CDN Realtime Streaming Limelight Realtime Streaming is a WebRTC based solution, according to some built on the Red5Pro server.
The Vonage Video API (formerly TokBox OpenTok)
Tokbox was aquired by Vonage, which now offers
The Vonage Video API.
The Video API makes it easy to build a custom video experience for mobile, web, or desktop.
Stream live video on all browsers, devices, and hardware. is how LiveSwitch introduces their offering.
Wowza, a long time leader in traditional adaptive streaming, does says their service
allows you to stream WebRTC end-to-end.
These solutions get installed on your cloud servers, or bare metal if you go that route.
Red5Pro In addition to offering a cloud/SaaS service, Red5Pro offers installable software.
Ant Media Server
According to Ant Media, they offer
Scalable, Ultra Low Latency & Adaptive WebRTC Streaming
Wowza Wowza offers on-premise installable software in addition to their cloud offering.
These solutions generally require developer time to reach your desired goal, but can offer more flexibility than the usual installable software or cloud solutions depending on your needs.
Janus' site says:
the general purpose WebRTC server.
It’s implemented in C++ and some examples use gStreamer. GPL licensed.
A streaming test example is available
from their site, and in the source code. I personally have more experience with Janus than the other popular media servers. I really liked the fact they had an online example of an SFU.
Jitsi From their site:
Jitsi is a set of open-source projects that allows you to easily build and deploy secure videoconferencing solutions. We are best known for our Jitsi Meet video conferencing platform, meet.jit.si where we host a Jitsi Meet instance that the community can use for totally free video conferences , and the Jitsi Videobridge that powers all of our multi-party video capabilities.
Kurento They say:
Kurento is a WebRTC media server and a set of client APIs making simple the development of advanced video applications for WWW and smartphone platforms.
One of Kurento’s nest features is the ability to use OpenCV in a plug and play manner. Computer vision, speech analysis and similar media analysis seems to be a differentiator for Kurento.
Streaming Global While WebRTC is becoming a popular way to deliver low latency video to the browser, it is not the only way. Streaming Global is an interesting company that does not use WebRTC for delivery. This can have it’s pros and cons.
Finally, it’s worth mentioning this unusual approach. Doing TCP sockets from the browser is old hat, and there are lots of examples of sites and applications doing AJAX and TCP directly to get media into the browser. But there are not really examples of UDP applications, because UDP connectivity is not supported directly browsers. But WebRTC Data Channels can give browser applications UDP-like latency and datagram-style connectivity. There are rumours of companies using WebRTC Data Channels for media transfer and then rendering audio and video media directly.