Introduction:
First declare I was just a small intern, if there is not correct, I hope you help correct me.
First, WEBRTC basic structure
Figure A WEBRTC overall structure, from Baidu Encyclopedia
First of all, WEBRTC the general realization of the idea: we create a web app, and then call in the app's JS Api,js API will invoke the C + + layer API in the browser, the underlying C + + module is from Google's Open source project WEBRTC, It allows the browser and browser to transfer audio and video streams directly. But if you want to do this two browser direct communication is still not working, the next section will talk about.
Looking at the diagram above, WEBRTC has three modules, voice engine (audio engines), video engine, Transport. Voice engine contains ISAC/ILBC Codec (audio codec for wideband and ultra-wideband, which is for narrowband), Neteq for voice (handles network jitter and voice packet loss), Echo Canceler (Echo Canceller), Noise Reduction (Noise suppression), video engine contains VP8 Codec (video image codec), video jitter buffer (videos jitter buffer, handling video jitter and video packet loss), Image enhancements ( Image quality enhancement). The transport contains SRTP (secure real-time transport protocol for audio and video streaming), multiplexing (multiplexing), P2p,stun+turn+ice (for NAT network and firewall traversal). In addition, secure transport may also use DTLS (datagram safe transport) for encrypted transport and key negotiation. The entire WEBRTC communication is UDP-based.
Second, the WEBRTC API provided by the
English api:http://www.w3.org/tr/webrtc/(personal advice to read English version)
Chinese API: http://www.iwebrtc.com/blog/webrtc1-0/(old version)
Three main APIs:
MediaStream: Get audio and video streaming
Rtcpeerconnection: Used for audio and video data communication
Rtcdatachannel: Data communication for any application
Learning Focus: Offer/answer state machine changes and ice state machine changes, and the combination of code and the entire flowchart to understand
Figure II Offer/answer state Machine Change chart, excerpted from the
Figure three ice state machine change chart, excerpted from the
Figure four complete call linking process (* focus), excerpted from the
Third, WEBRTC Open source project
licode:http://chotis2.dit.upm.es/ MIT License
KURENTO:HTTP://WWW.KURENTO.ORG/LGPL License
Google also has the official demo,github on the More good demo (Webrtc-experiment demo comparison full)
In addition, you can also read the "Web performance of the authoritative guide", there is also about the webrtc of the explanation, speaking very good.
The first knowledge WEBRTC of WEBRTC's introductory study