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 MoreUnderstanding how WebRTC is governed in reality will enable you to make better decisions in your development strategy.
If you are correct or not is something we can argue about. What we can’t argue is that the expectation that a company who is maintaining an open source library doesn’t owe you anything.
Free is worth exactly what you pay for it. 0️⃣
And there lies the whole issue - if you aren’t paying for WebRTC, then what gives you the right to complain? (btw - this is different from the other side of it - could Google do a better job of maintaining WebRTC for everyone at the same or lower effort, while increasing external contributions to it).
To. Many, Times. People. Complain. About. Google.
I do that as well 😀
If you are complaining, at least know that you’re complaining about something that is reasonable…
One of the more recent cases comes from Twilio (or more accurately a customer of theirs):
There was a minor change in Google’s implementation of WebRTC. For some reason, they decided to be less lenient with how they parse iceServers in peer connections to be more “spec compliant”.
Yes. It is nitpicking.
Yes. It is a useless change.
Yes. They could have decided not to do it.
But they did. And in a weird way, it makes sense to do so.
And there’s a process in place already for dealing with that - Canary and Beta versions of Chrome that vendors (like Twilio) can use to catch and handle these things beforehand. Or they can… well… register to the WebRTC Insights 😉
Twilio had to fix their code (and they did by the way), and yet there are those who blame Google here for making changes in Chrome. Changes that one can say are needed.
I’d add a few more thoughts here before I continue to dive in to this topic properly:
WebRTC is an open standard governed by the W3C and an open source library which confusingly is also named “webrtc”. I prefer to call it libwebrtc.
The WebRTC open source standard is somewhat split in “ownership” between the W3C and the IETF. W3C is in charge of the API surface we use in the browser for WebRTC and the IETF on the network protocol itself - what gets sent over the network.
WebRTC as an open source library is… well… it depends. Google develops and maintains libwebrtc - that’s the source code that goes into Chrome. And Edge. And Firefox. And Safari. Yes - all of them. And then there are other alternative libraries you can use.
The thing is this - you can’t really use a different WebRTC implementation in the browser, because browsers come with libwebrtc “built-in”. And in many cases, if you don’t need a browser, you may still want to use libwebrtc just to be as close as possible to the browser implementation.
Does that mean that Google owns the WebRTC implementation? To some degree it does - while there are alternatives, none of them are truly usable for many of the use cases.
That said, anyone can fork the Google WebRTC implementation and create his own project - open source or otherwise - and continue from there. Apple could do it. So could Microsoft and Mozilla. And yet they all decided to stick with libwebrtc as is.
Why is that?
I can think of two main reasons:
So in a way, Google owns WebRTC without really owning it. At least as long as Chrome is the undisputed and dominant form in which we consume the internet (are you reading this on a Chrome browser?)
I usually place a global market share graph at this stage. This time, I’ll share this website’s visitors distribution:
libwebrtc is maintained by Google for Google. It is open sourced and you can use it. You can even contribute back, which isn’t a simple process.
By Google for Google means that prioritization of features, testing and bug fixes is done based on Google’s needs. These needs include Google Meet, a few other Google services and the need to support and maintain the larger ecosystem.
Who sets the tone here? What decides if your bug is more important to deal with than Google Meet or another vendor’s problems?
Put yourself in the shoes of the Google product manager for WebRTC and you’ll know the answer - it would be Google Meet first. The others later.
This also sets the tone as to the build system and code structure of libwebrtc. It is highly geared towards its use inside Chrome. Less elsewhere. And this in turn means that adopting it as a library inside your own application means dealing with code that isn’t meant to be a classic generic purpose SDK - you’ll need to figure your way through it (and with a bit less documentation than you’d like).
There are now hundreds if not thousands of vendors using WebRTC in the ecosystem. They do it directly or indirectly via CPaaS vendors and other tooling and solutions. You can find many of them in my WebRTC Developer Tools Lanscape. Most of them view WebRTC as free. Not only that, it seems like many treat WebRTC as a human right - it needs to be there for them, it must be perfect, and if there’s something ”wrong” with it, then humanity has the obligation to fix it for them.
So… WebRTC is free. But what does that mean exactly? What is the SLA associated with it? What can you expect of it and come back to complain if it isn’t met?
Here are a few additional interesting questions, If WebRTC is cardinal and strategic to your application:
👉 To be clear - there are no right or wrong answers here - just make sure you position your expectations based on your answers as well
Philipp Hancke has been doing WebRTC for a long time and is renowned for his bug reports. He even got Google to fix quite a few of them. Some bugs stayed open for years however, like this bug about TURN relay servers being used sometimes in cases where using STUN will be just fine. A bug here has an impact on the percentage of calls that get relayed via TURN servers which has a negative impact on call quality (at times) but also increases the cost to run those.
This bug has been open for since 2016. Quite a few Googlers took a look but without finding anything that stood out. The crucial hint of what goes wrong came in 2021 in another bug report. In the end, Philipp had to acquire the skills necessary to fix the bug (which will hopefully happen before the end of 2023).
This takes time and time is not cheap - especially that of engineers. Microsoft as his employer apparently decided it was important enough for him to spend time on fixing this and other issues.
HEVC encoding and decoding in WebRTC seems to be a topic some folks get excited about. It would be great to know why..
There is a bug report about it in the WebRTC issue tracker which gets fairly frequent updates. And yet… Google does nothing! How can that be?
One would say that’s because it is out of the requirements of what Google needs for Google. There are other contributing factors as well here:
There’s this modern concept of zero trust in cloud computing these days.
Here’s my suggestion to you wrt WebRTC and your stance:
Zero expectations.
Don’t expect - and you won’t be disappointed.
But more importantly - understand how this game is played:
And yes - we’re here to help - you can use WebRTC Insights to get ahead of these issues in many ways.
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