Web Real-Time Communications (WebRTC) is a specification for a protocol implementation that enables web apps to transmit video, audio and data streams between client (typically a web browser) and server (usually a web server).
How to Get Started Learning WebRTC Development explains what you do and do not need to know as prerequisites for building with WebRTC along with some sources for learning.
This post titled
WebRTC: a working example
and the
companion open source repository
provides a simple working example of WebRTC technology, without any 3rd party
dependencies. It allows 2 web browsers to exchange audio and video streams by
using the aiohttp
and python-socketio
modules.
The Introduction to WebRTC video series (part 2 and part 3) can be a bit dry at points but overall has a ton of good information that gives a solid overview of the technology.
WebRTC issues and how to debug them explains the various ways that implementations can go wrong and where to start looking when you run into errors.
A Study of WebRTC Security gives a great overview of WebRTC and the new security concerns it can bring as it is integrated into more web applications.
How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC provides detailed insight into the what and why of the highly scalable Discord technical architecture that relies upon WebRTC for communication. There are a bunch of great examples here for why some of the service must be centralized (to prevent client IP addresses from leaking to other clients) while others are decentralized to assist with scaling the number of possible connections.
Architectures for a kickass WebRTC application is a video of a technical talk that covers some of the tools and protocols that can be used to create your WebRTC projects and why you would choose one tool other another.
WebRTC connection times and the power of playing around with data provides data on connection times and potential reasons for WebRTC connection quality suffers in some cases.
A closer look into WebRTC covers the Safari WebRTC implementation in WebKit and explains some of the nuances for that specific web browser's implementation.
STUN/TURN servers are used to relay data to a non-public IP address in a WebRTC application. This blog post on Do you still need TURN if your media server has a public IP address? answers some frequently asked questions about when a TURN server is truly required.
An Intro to WebRTC and Accessing a User’s Media Devices goes into the JavaScript needed to use a computer's media devices such as the microphone and video camera through the web browser's APIs.
AIORTC: An Asynchronous WebRTC Framework is an interview with the developer of an async WebRTC framework that is built upon asyncio.