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 MoreAn updated WebRTC FAQ for those who wish to understand this tech somewhat better.
It is 2018, and it seems like there’s no good FAQ for WebRTC. Nowhere. They’re just not up to date. That, coupled with my own need to be the best source of information on the web about WebRTC (and the fact that my last few articles were more about CPaaS and messaging than WebRTC), got me to write this one.
WebRTC is both a standard specification and an open source project.
WebRTC allows sending and receiving of real time voice, video and arbitrary data across browsers and other devices. This means we now have an easy way as users to conduct voice and video conferences from a browser or from our mobile devices. WebRTC can do a lot more than that, but voice and video in real time is the basis of what you get out of it.
There’s a short video explaining What is WebRTC on my site.
WebRTC originated from Google. It started by an acquisition of a few companies, whose technology was then repackaged and released as open source under the name of WebRTC.
Google is still the main vendor behind WebRTC. That’s because its own WebRTC engine is the main WebRTC open source project out there and it is also the one that gets integrated into the Chrome browser.
Mozilla, Microsoft and Apple all contribute to WebRTC and have their own implementations of WebRTC in their browsers (some of these implementations are derived from the Google code).
Other vendors and individuals contribute to the specification through the IETF and W3C, where the standardization process of WebRTC takes place.
My own contribution to WebRTC is this site, which publishes a lot of free information around WebRTC as well as the Kranky Geek event, and WebRTC Glossary.
Yes.
WebRTC is used today by commercial services (here are 10 such examples).
Some complain and gripe that WebRTC isn’t ready for commercial use. This stems due to the many changes that the codebase and specification is undergoing. It also means that if you plan on using WebRTC, either do that through a third party managed service (a CPaaS vendor - list here) or make sure to have a team of savvy developers that can keep up with the pace.
The changes introduced to the WebRTC codebase itself oftentimes breaks backward compatibility and features, probably by sticking to a “move fast and break things” motto to some extent.
If you don’t need real time voice and video then you might not need to use WebRTC at all.
If you do, then it is a matter of capability, resources and time to market:
For voice, the mandatory codecs are G.711 and Opus. Out of these two, be sure to use Opus (G.711 is old and crappy).
For video, the mandatory codecs are VP8 and H.264. Apple’s Safari browser doesn’t support VP8. And on Android, Chrome won’t support H.264 on *some* devices (I’ll let you go figure out on which ones). More about that in this video mini-series.
VP9 is supported by Chrome and Firefox. AV1 seems to be the future.
All of them. Almost. But not exactly. And there are differences.
There’s a devices cheat sheet on my website.
And then there’s adapter.js which you should definitely use.
Yes.
On Android, on official Chrome and Firefox browsers, WebRTC is available.
On iOS, Safari offers something usable if you are willing to invest the energy to get it working well.
On both Android and iOS you can take the WebRTC source code and integrate it inside your native application. Google even releases prebuilt packages for both Android and iOS.
If you want to use a Webview inside your app, then this is easy with Android, restrictive with iOS for now (you won’t be able to access the camera or the microphone there).
Yes.
You definitely need a signaling server. And STUN/TURN server. You might need a media server.
WebRTC is said to be peer-to-peer. It is when it comes to the media as much as possible. But developers can make use of it in server centric environments. And there are some scenarios where it makes no technical sense to use peer-to-peer (for example if you want to broadcast something to a million people or conduct a video conference with 20 participants).
There’s a free video mini series explaining WebRTC servers on this site.
Yap.
Think of WebRTC as a basic building block that gives you superpowers. With it you have the ability to send and receive voice and video in real time virtually on every device and browser.
Now what you do with this superpower, how you interact with it, architect your solution around it - that’s up to you.
There are vendors offering video conferencing that uses WebRTC and gets to 10’s of participants. Webinars with 100’s of live viewers in the audience.
You can read more about scale and size of WebRTC.
No.
And yes.
Depending who you are and what are your needs.
I wrote a lot about WebRTC security in the past. It gets tiring.
WebRTC comes with security in mind. It encrypts everything. Can’t remove that encryption. And browsers get security updates faster than any other software you have.
The one sticking issue is probably the fact that it exposes the local IP address of your machine when it is used. VPNs that are implemented properly solve that as well. More about that over at webrtcHacks and VPN leaks.
WebRTC 1.0 is the first time that WebRTC will have an official specification.
Up until now, we had drafts and browser implementations that were an approximation of the drafts. Now we have an approximation of the WebRTC 1.0 specification and approximations of implementations to it in browsers.
Confused?
Don’t be. Assume WebRTC is good to go commercially (check that part of my FAQ) and just go read Jan-Ivar’s explanation @ Mozilla’s Advancing WebRTC blog.
Oh - and be sure to use adapter.js.
It doesn’t. And it does.
WebRTC is freely available in browsers.
The source code is also freely available.
The servers you will need to use it - someone will need to pay for them. That payment can be to a managed service, or to a cloud vendors and developers who will develop, install and maintain them. Up to you to decide.
Oftentimes, developers assume everything should be free with WebRTC, whereas reality is different. And for some reason, most perceive development costs as free or sunk costs (they will call it investment) as opposed to paying a third party for doing the hard stuff for you.
A bit more on this here.
If you are into free, then try reading the specs, playing with the official samples, reading this blog and webrtcHacks.
There are a few courses on coursera, pluralsight and elsewhere. Never tried them, but read their agendas. Take a look for yourself and decide what’s for you.
There are books, but none of them is up to date with the specification.
Best place? Hands down? My courses at webrtccourse.com.
Maybe.
There’s my course. There’s testRTC where I am a co-founder (we do testing and monitoring of WebRTC apps).
I also consult. Around architecture, vendor selection, defining requirements, setting roadmaps, working on differentiation and doing pure marketing related work. What can I say?
I like the variety.
You can reach out to me here.
-
Got a question about WebRTC that needs to go into this FAQ? Add it below in the comments.
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