Plain text can only get you so far I guess.
Sometimes, audio and video (and fancy data channels) do really make a difference. I talk about some of my experiences here.
Basics
- WebRTC, Google's intro page to the tech.
- WebRTC on Wikipedia, with a nice little overview and of course the potential to make you spend as much time as you'd care to following links.
Standards
- WebRTC on W3, interesting in large part because it describes the browser API, which ends up shaping native libraries as well.
- RFC4566 - SDP: Session Description Protocol.
- RFC5245 - Interactive Connectivity Establishment (ICE).
- RFC5389 - Session Traversal Utilities for NAT (STUN).
- RFC5888 - The Session Description Protocol (SDP) Grouping Framework.
- RFC7065 - Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers.
Implementations
- Google webrtc library, the most common and popular one that I'm aware of.
- WinRTC, basically Google's webrtc library but with patches so it can be used with UWP rather than in just classic Win32 applications.
- MixedReality-WebRTC, no longer under development, also a version of Google's webrtc library with some UWP support, but also Unity and C++, with some tweaks to make it run well on HoloLens devices.
Codecs
Signaling
How do you get two people that want to use webrtc to find each other and start an exchange?
- WebSockets
- SignalR, including a native client.
- Azure SignalR is a hosted version of a SignalR service.
- Microsoft Orleans, a highly scalable framework based on the actor model. Even without serialization/persistence, a great way to have locatable, programmable nuggets of state.
- Janus WebRTC Server, a lovely C-based that implements a webrtc server with a whole bunch of plugins to enable meetings, conferences, recording, streaming, and more - with securable and programmable configuration and administration APIs.
Home