You already have working infrastructure. You know the ins and outs of your video protocol.
Everything is working, but you feel like things could work even better. If so, this talk is for you!
This talk explores all the things WebRTC could unlock for you. There could be solutions for problems you didn't
even realize were fixable!
3. 1
Pion
Collection of Go RTC libraries
- Building blocks to build your vision
- Designed to be flexible
- Community Owned/Non-Commercial
PeerConnection API in Pure Go
- CreateOffer/AddTrack/….
- User controls media pipeline
- SettingEngine
- Interceptors
4. 2
Pion
TURN as an API in Pure Go
- Callbacks for authentication
- Bring your own logger
- Run TURN and HTTPS on same port
- Embed TURN in application
Ion
- Cluster based system for building RTC
- SFU Instance
- AVP Instance (Processing real-time media)
- LIVE Instance (SIP/RTMP/HLS Endpoints)
5. 3
WebRTC for the Curious
Book on how WebRTC really works
- Not just about the public APIs!
- Deep dive on protocols
History of WebRTC
- Interviews with RFC authors
WebRTC in practice
- Debugging every piece
- Teach the sharp edges
7. 4
Protocol for Browsers
E2E Secure Connection between Peers
- You decide the topology
Multiple Audio/Video Tracks
Binary Data
- Can be lossy
- Can be unordered
- Multiple distinct DataChannels
11. 7
Lower Latency
You can expect sub 500ms
- TCP/TURN may effect this
- You can make a choice of quality vs latency
You can get it much lower though!
- Google Stadia sees 125ms for keypress [0]
- playoutDelayHint API
[0] https://www.pcgamer.com/heres-how-stadias-input-lag-compares-to-native-pc-gaming/
12. 8
Secure By Default
DTLS and SRTP
- TLS over UDP
- Self-Signed, fingerprint via signaling
You can use existing gateways/proxies
13. 9
Flexible Networking
NAT Traversal
- Video never has to enter your network!
- Feels like ‘automatic port forwarding’
- Also can route through a ‘WebRTC Server’
Stay connected as you roam
- Switch networks with ICE Restarts
- Congestion Control in userspace
14. 10
Advanced Media Capabilities
Upload Multiple Quality Levels via Simulcast
- Stop running expensive transcoders!
Add/Remove tracks at anytime on either side
- You can mix/match codecs
Fast moving and widely adopted
- H265 and AV1 Support (not all Agents yet)
15. 11
Binary/Text Communication
Great for sending metadata
- Users in a room, chat etc…
E2E Secure
- No reason to upload this stuff to backend
Great for real-time
- Can be unordered/reliable
- Avoid HoL blocking
16. 12
It’s a standard
Widely Available
- C, C++, Go, Python, Rust, Android, iOS….
Remove subjectivity from incompatibilities
- Community is directed and resolving issues
It’s in the browser
It’s easy to bridge
- Uses existing protocols from telephony
18. 13
Agents negotiate in-band
Codec Negotiation is in the protocol
- You can declare I support X only
- Don’t have to put this logic in your codec
Track Negotiation is in the protocol
- I am willing to accept n tracks
- I am going to send you n tracks
19. 14
Re-uses existing protocols
Widely Available
- C, C++, Go, Python, Rust, Android, iOS….
It’s in the browser
It’s easy to bridge
- Uses existing protocols from telephony
- If you want to view in the browser….