What is WebRTC
Aug 7, 2020
communicate in 200ms for live video.
pieced to gether unrelated parts
Generic Description: real time communication between browsers and mobile.
now used to conferencing apps. talk from one persone to another.
- can do many interesting things:
- TOR’s snowflake. censorship circumvention (p2p traffic not dependent on server)
- server-side proccessing (realtime processing of video/audio. subtitles etc)
- P2P data transfer. http://pyget.com/about.html
- augmented reality(hololense)
WebRTC API
- SDP
session description protocol
declare properties about self.
- I support these codecs
- this is my ip
- these are the streams (tracks) I am going to send you
How do I talk to you.
you have an IP that I cant directly access. I have no idea where you are. STUN server.
- send a UDP packet to StunServer on :5000<>:5000 punches a permanent hole through NAT sned a packet to NATB forwarded through to browser.
- now can reply
ORTC API
RTCPeenConnection
SRTP
Sending video buffers of UDP losing 3% randomly stopping
- Jitter buffer
- ability to account for loss
- adjust amount of delay dynamically.
- waits for packets to arrive
- raise and lower latency
- ask for resending of lost packets.
- inside the latency time frame
- adjust amount of delay dynamically.
DATAChannel
SCTP
- Data transfer
- send binary back and forward, account for loss.
- negotiate a channel
- decide the parameters of the channel (lossy?)
DTLS
How do we communicate with people listening in the middle
- TLS that accounts for loss
- DH encryption
- share states even if someone is eves-dropping they can’t steal
ICE
- how do I talk to you?
STUN
punched hole through NAT
UDP
- Lossy connection
- enables it to be fast?
TURN
B establish session with turn server A sends packets through turn server.
TCP
RTP Framing
Ever changing.
Pion-webrtc
Current WebRTC designed with incumbent application in mind
- no access to send arbitrary video
- no access to bring own decoder.