If you’re confused about all these acronyms, you’re not alone! Those interested in WebRTC and broadcasting have probably heard about WHIP already: WHEP and WHAP maybe not as much And if you’re even more confused about why I chose a picture of Huey, Dewey and Louie as the featured image, that’s because in Italian they’re called “Qui, Quo e Qua”, which is the first thing that came to mind when I came up with the title. I know, it’s incredibly stupid, but please bear with me: I’ve just come back from my summer break! We’ve talked about WHIP, a new…
-
-
SFU cascading has been a hot topic for quite some time. There’s different reasons why you may want to cascade an SFU implementation: you may want to scale a room so that multiple servers cooperate with each other to distrubute the same streams, for instance, or more simply you may want to ensure that subscribers always get the media from the server that is closest to them, rather than force them to join the instance where the streams are actually originated. Whatever the reason, it’s indeed a useful tool to have in your belt, and so we started working on…
-
After three years of work (the original pull request was first opened in December 2018) we finally merged the multistream branch in Janus! Considering this was a huge refactoring, we chose a special day for the occasion, that is the 8th birthday of Janus itself, whose first commit appeared in GitHub on the 11th of February of 2014 (time flies when you’re having fun!). That’s all good, but some of you may be wondering: what the heck is this “multistream” thing you’ve been blabbering about anyway?! I made a long presentation about all that a couple of years ago at…
-
Sometime around last year, I first introduced WHIP and how it could be used with Janus in a blog post right here. At the time, we had quite some fun experimenting with this new signalling approach our friends at CoSMo (and our good old friend Dr. Alex in particular, may he rest in peace ❤️) had come up with, using a custom fork of OBS Studio called OBS-WebRTC. In the meanwhile, WHIP has been adopted by the IETF in a new Working Group called WISH (WebRTC Ingest Signalling over HTTPS), which led us and other developers to start working on…
-
About a year or so ago, we talked about how we added support for new codecs to Janus, namely AV1 and H.265, and why that was an interesting foundation for more exciting things to come. AV1 in particular was a very interesting addition, since it’s a joint effort of several companies to write a powerful royalty free video codec, explicitly conceived to support Scalable Video Coding (SVC) out of the box, which is obviously a very appealing feature, especially in the context of WebRTC (e.g., for conferencing and broadcasting purposes). At the time, while Chrome had started, thanks to the…
-
A few months ago, I read a very interesting blog post by Philipp Hancke on how Chrome had added experimental support for audio redundancy via RED, and how it actually helped improve audio quality a lot in lossy networks. That post was followed a few weeks later by another interesting article, written by Boriz Grozev from the Jitsi team, on how RED could be used within an SFU context. I was quite intrigued by both writeups since then, but I only found time to look into this myself recently. This post tries to summarize my efforts in that regard and…
-
You may remember that a couple of months ago I wrote a blog post on a cool experiment I had worked on: a “simple” way to bridge the gap between the WebRTC and NDI worlds, something that had apparently been lacking in the broadcasters industry, using a new Janus plugin. At the time, this sparkled a lot of interest in the broadcasters community, and since then I also presented the effort in a couple of different venues: I made a live demo of the Janus NDI plugin in action during the ClueCon Dangerous Demos session, involving live feeds of people…
-
About a month ago, we shared a post on several things that were happening in Janus. One of the most exciting sections was definitely the one related to end-to-end encryption, and how Insertable Streams could be used for the purpose. Considering this is something a lot of people have looked up to for a long time, I thought it made sense to write a new post, to dig a bit deeper in what we’ve been doing with that so far, and what’s next. In particular, I’ll share some details on how I started playing with Sergio Garcia Murillo’s excellent SFrame…
-
It’s been a few weeks since we went quickly through most of the things cooking in Janus. We did a quick overview on a lot of different changes and enhancements, but I felt it was time to dig a bit deeper in one topic in particular, that is the efforts we’ve spent on getting Janus to support AV1 and H.265. A new codec war? If you’re as old as I am (in WebRTC years, at least), you’ll probably remember the “First Codec War”: the one that had VP8 and H.264 face each other in a battle to the death. Eventually,…
-
It’s been a while since I last wrote a blog post, here: more precisely, it was more than 4 months ago when I documented our efforts in getting Real-Time Text support to WebRTC and the SIP plugin. I realized that, for the amounts of things we work on every day, we also do a pretty bad job at telling people about it, which means many may not actually be aware of cool new features or experimentations we’ve started, or even completed. This is even more important now, in a world that has so suddenly and dramatically changed in these past…