OpenAI, LLMs, WebRTC, voice bots and Programmable Video
Learn about WebRTC LLM and its applications. Discover how this technology can improve real-time communication using conversational AI.
Read MoreWhat are the WebRTC open source media servers in 2024, and which ones are the best, based on github stars.
This one is one of those sensitive articles which many people later complain about. So I’ll start it with a few disclaimers:
WebRTC is free. At least the part of it being an open standard with a commercial grade open source implementation that is available and embedded across all modern browsers.
This has garnered a nice developer ecosystem around it, part of which is open source in its nature. A simple search for “webrtc” on github returns over 32k results.
There are a lot of different avenues to WebRTC projects on github. The main ones that come to the top of my head include:
For this specific article, I want to focus on media servers.
There are quite a few WebRTC media servers, many of which are open source. That said, most aren’t widely known or got to the point of being interesting enough for me to take notice (I usually take notice when someone tells me he is using it for something that goes to commercial use).
Throughout the years, the list of the popular WebRTC media servers hasn’t changed that much. I’ve been using this diagram for two years now, and it probably still holds true:
Due to this, my “top 4” is simply the WebRTC open source media servers above that are still relevant. And to make sure people don’t bash me on minor issues, I’ll be presenting my these in their dictionary order: Janus, Jitsi, mediasoup and Pion
How do you even begin deciding which WebRTC open source media server project is the most commonly used out there?
One approach is to count the stars. Github starts. Luckily, all the projects I was interested in have github repos. Philipp Hancke directed me to GitHub Star History, which after a bit of fooling around with, got me this nice initial chart:
Based on people who placed a star on these github projects, we can see that mediasoup is chugging along, last in the packet. It is followed by Janus. Then there’s Pion and Jitsi Meet is ahead of the pack.
Each of these projects started at a different point in time. Pion was last to the party, which means the other projects had a headstart on it. Aligning them all on the point in time they were added to github, produces this chart:
Initial immediate thoughts here?
Let's do a quick deep dive into each one of these.
Janus is one of the oldest WebRTC media servers. It is written in C, which might be the reason for its limited adoption - most developers these days won’t know how to write a hello world application in C - let alone figure out its memory use concepts (where you have to explicitly free what you allocate).
What Janus has going for it is a company. Meetecho, the maintainer of Janus, offers paid support and development services around Janus. Something other open source WebRTC media servers lack.
The trajectory of Janus is unlikely to change. It is versatile, has a community around it and support services.
Jitsi Meet is likely the oldest of WebRTC media servers. Started by Bluejimp, who were acquired by Atlassian and then 8x8.
While Jitsi doesn’t offer any direct support and development services for Jitsi, it does offer JaaS - a managed Jitsi service for developers.
Jitsi is written in Java and has a React UI implementation.
One reason for its meteoric rise is the pandemic. Jitsi is the only open source solution that came fully built and optimized for group calls. From the get go, their mission was to build an open source Google Hangouts (that’s Google Meet today). And they succeeded.
By narrowing their applicability to a specific use case, they opened up their viability as a solution to a larger target audience - way beyond that of developers building applications.
This unfair advantage places them here as a top dog. This doesn’t mean that they are suitable for everyone - quite the opposite. They are suitable for those building Google Meet-like experiences. For things that are beyond this use case, shop around the other media servers first. But for a Google Meet-like service? Start from Jitsi Meet.
Mediasoup is an open source WebRTC media server exposed as Node.js and Rust libraries. It is designed for high performance, with the unique concept of having the application built right inside the same Node.js or Rust process.
The challenge with mediasoup is its inability to offer official support and development services. Here, the reason is simple - the main creators and contributors work as developers at Miro today.
This challenge is probably what led to the slow growth of mediasoup in the github popularity contest.
That said, if you go and look at many large scale group calling deployments, they use mediasoup…
Pion is last to the scene, but fast growing compared to the others. There are 3 reasons why:
As Pion’s popularity grows, so are the number of commercial services cropping up that use Pion.
None.
All.
It depends.
For managers, my suggestion is almost always to let their developers experiment and pick and choose the open source WebRTC media server that they see fit. There are differences across these alternatives, but at the end of the day, if anyone tries to force a developer to use something he doesn’t think is the right solution - said developer will make sure to explain to the one forcing him why the decision made is the wrong one. In other words, you don’t want to go against your developers.
For developers, I find myself suggesting different media servers depending on their use case, requirements and even company DNA.
So in short, there’s no best WebRTC open source media server. There are several alternatives that are great - you just need to pick the one that is best for you 😀
Learn about WebRTC LLM and its applications. Discover how this technology can improve real-time communication using conversational AI.
Read MoreGet your copy of my ebook on the top 7 video quality metrics and KPIs in WebRTC (below).
Read More