blob: ed9143812a1e6c6cd0a174a970944f09067ae8c8 [file] [log] [blame] [view]
Mirko Bonadeid8819832020-02-20 14:21:321# FAQ
2
3### What is WebRTC?
Mirko Bonadei97ba4be2020-02-20 10:53:454
5WebRTC is an open framework for the web that enables Real Time Communications
6in the browser. It includes the fundamental building blocks for high-quality
7communications on the web, such as network, audio and video components used in
8voice and video chat applications.
9
10These components, when implemented in a browser, can be accessed through a
11JavaScript API, enabling developers to easily implement their own RTC web app.
12
13The WebRTC effort is being standardized on an API level at the W3C and at the
14protocol level at the IETF.
15
16
Mirko Bonadeid8819832020-02-20 14:21:3217### Why should I use WebRTC?
Mirko Bonadei97ba4be2020-02-20 10:53:4518
19We think you'll want to build your next video-chat style application using
20WebRTC. Here's why:
21
22 * A key factor in the success of the web is that its core technologies --
23 such as HTML, HTTP, and TCP/IP -- are open and freely implementable.
24 Currently, there is no free, high-quality, complete solution available
25 that enables communication in the browser. WebRTC enables this.
26
27 * Already integrated with best-of-breed voice and video engines that have
28 been deployed on millions of endpoints over the last 8+ years. Google does
29 not charge royalties for WebRTC.
30
31 * Includes and abstracts key NAT and firewall traversal technology, using
32 STUN, ICE, TURN, RTP-over-TCP and support for proxies.
33
34 * Builds on the strength of the web browser: WebRTC abstracts signaling by
35 offering a signaling state machine that maps directly to `PeerConnection`.
36 Web developers can therefore choose the protocol of choice for their usage
37 scenario (for example, but not limited to, SIP, XMPP/Jingle, et al.).
38
39
Mirko Bonadeid8819832020-02-20 14:21:3240### What is the Opus audio codec?
Mirko Bonadei97ba4be2020-02-20 10:53:4541
42[Opus][opus-link] is a royalty-free audio codec defined by IETF
43RFC 6176. It supports constant and variable bitrate encoding from 6 kbit/s to
44510 kbit/s, frame sizes from 2.5 ms to 60 ms, and various sampling rates from
458 kHz (with 4 kHz bandwidth) to 48 kHz (with 20 kHz bandwidth, where the
46entire hearing range of the human auditory system can be reproduced).
47
48[opus-link]: http://opus-codec.org/
49
Mirko Bonadeid8819832020-02-20 14:21:3250### What is the iSAC audio codec?
Mirko Bonadei97ba4be2020-02-20 10:53:4551
52iSAC is a robust, bandwidth-adaptive, wideband and super-wideband voice codec
53developed by Global IP Solutions, and is used in many Voice over IP (VoIP) and
54streaming audio applications. iSAC is used by industry leaders in hundreds of
55millions of VoIP endpoints. This codec is included as part of the WebRTC
56project.
57
58
Mirko Bonadeid8819832020-02-20 14:21:3259### What is the iLBC audio codec?
Mirko Bonadei97ba4be2020-02-20 10:53:4560
61iLBC is a free narrowband voice codec that was developed by Global IP
62Solutions, and is used in many Voice over IP (VoIP) and streaming audio
63applications. In 2004, the final IETF RFC versions of the iLBC codec
64specification and the iLBC RTP Profile draft became available. This codec is
65included as part of the WebRTC project.
66
67
Mirko Bonadeid8819832020-02-20 14:21:3268### What is the VP8 video codec?
Mirko Bonadei97ba4be2020-02-20 10:53:4569
70VP8 is a highly-efficient video compression technology developed by the WebM Project. It is the video codec included with WebRTC.
71
Mirko Bonadeid8819832020-02-20 14:21:3272### What is the VP9 video codec?
Mirko Bonadei97ba4be2020-02-20 10:53:4573
74Similar to VP8, VP9 is also from the WebM Project. Its a next-generation open video codec. From Chrome 48 on desktop and Android, VP9 will be an optional video codec for video calls. More details in [Google Developers][vp9-link].
75
76[vp9-link]: https://developers.google.com/web/updates/2016/01/vp9-webrtc/
77
Mirko Bonadeid8819832020-02-20 14:21:3278### What other components are included in the WebRTC package?
Mirko Bonadei97ba4be2020-02-20 10:53:4579
Mirko Bonadeid8819832020-02-20 14:21:3280#### Audio
Mirko Bonadei97ba4be2020-02-20 10:53:4581
82WebRTC offers a complete stack for voice communications. It includes not only
83the necessary codecs, but other components necessary to great user
84experiences. This includes software-based acoustic echo cancellation (AEC),
85automatic gain control (AGC), noise reduction, noise suppression, and
86hardware access and control across multiple platforms.
87
88
Mirko Bonadeid8819832020-02-20 14:21:3289#### Video
Mirko Bonadei97ba4be2020-02-20 10:53:4590
91The WebRTC project builds on the VP8 codec, introduced in 2010 as part of the
92[WebM Project][webm-link]. It includes components to conceal
93packet loss and clean up noisy images, as well as capture and playback
94capabilities across multiple platforms.
95
96[webm-link]: http://www.webmproject.org/
97
Mirko Bonadeid8819832020-02-20 14:21:3298#### Network
Mirko Bonadei97ba4be2020-02-20 10:53:4599
100Dynamic jitter buffers and error concealment techniques are included for audio
101and video, which help mitigate the effects of packet loss and unreliable
102networks. Also included are components for establishing a peer-to-peer
103connection using ICE / STUN / Turn / RTP-over-TCP and support for proxies.
104
105
Mirko Bonadeid8819832020-02-20 14:21:32106### How do I access the WebRTC code?
Mirko Bonadei97ba4be2020-02-20 10:53:45107
Mirko Bonadeid8819832020-02-20 14:21:32108Go to [https://webrtc.googlesource.com/src][webrtc-repo-link].
Mirko Bonadei97ba4be2020-02-20 10:53:45109
110[webrtc-repo-link]: https://webrtc.googlesource.com/src
111
112
Mirko Bonadeid8819832020-02-20 14:21:32113### How can I test the quality of WebRTC components?
Mirko Bonadei97ba4be2020-02-20 10:53:45114
115We have put sample applications [here][examples-link].
116
117[examples-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md#example-applications
118
119
Mirko Bonadeid8819832020-02-20 14:21:32120### Are WebRTC components subject to change?
Mirko Bonadei97ba4be2020-02-20 10:53:45121
122WebRTC is based on a API that is still under development through efforts at
123WHATWG, W3C and IETF. We hope to get to a stable API once a few browser
124vendors have implementations ready for testing. Once the API is stable, our
125goal will be to offer backwards compatibility and interoperability. The WebRTC
126API layer will be our main focus for stability and interoperability. The
127components under it may be modified to improve quality, performance and
128feature set.
129
130
Mirko Bonadeid8819832020-02-20 14:21:32131### WebRTC components are open-source. How do I get the source and contribute code?
Mirko Bonadei97ba4be2020-02-20 10:53:45132
133Please see [Getting Started][getting-started-link] and
134[Contributing bug fixes][contributing-link] for more information.
135
136[getting-started-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md
137[contributing-link]: https://webrtc.org/support/contributing
138
139
Mirko Bonadeid8819832020-02-20 14:21:32140### To be a Contributor, do I need to sign any agreements?
Mirko Bonadei97ba4be2020-02-20 10:53:45141
142Yes, each Contributor must sign and return the
143[Contributor License Agreement][cla-link]
144
145[cla-link]: https://developers.google.com/open-source/cla/individual?hl=en
146
147
Mirko Bonadeid8819832020-02-20 14:21:32148### Do I have to be a programmer to use WebRTC?
Mirko Bonadei97ba4be2020-02-20 10:53:45149
150Yes, to build WebRTC support into a software application or contribute
151improvements, programming skills are required. However, usage of the
152JavaScript APIs that call WebRTC in the browsers will only require typical web
153development skills.
154
155
Mirko Bonadeid8819832020-02-20 14:21:32156### Is the WebRTC project owned by Google or is it independent?
Mirko Bonadei97ba4be2020-02-20 10:53:45157
158WebRTC is an open-source project supported by Google, Mozilla and Opera. The
159API and underlying protocols are being developed jointly at the W3C and IETF.
160
161
Mirko Bonadeid8819832020-02-20 14:21:32162### Are the WebRTC components from Google's acquisition of Global IP Solutions?
Mirko Bonadei97ba4be2020-02-20 10:53:45163
164Yes. Some components, such as VoiceEngine, VideoEngine, NetEQ, AEC, et al. all
165stem from the GIPS acquisition.
166
167
Mirko Bonadeid8819832020-02-20 14:21:32168### What codecs are supported in WebRTC?
Mirko Bonadei97ba4be2020-02-20 10:53:45169
170The currently supported voice codecs are G.711, G.722, iLBC, and iSAC, and VP8
171is the supported video codec. The list of supported codecs may change in the
172future.
173
174
Mirko Bonadeid8819832020-02-20 14:21:32175### Please explain how WebRTC is free of charge?
Mirko Bonadei97ba4be2020-02-20 10:53:45176
177Some software frameworks, voice and video codecs require end-users,
178distributors and manufacturers to pay patent royalties to use the intellectual
179property within the software technology and/or codec. Google is not charging
180royalties for WebRTC and its components including the codecs it supports (VP8
181for video and iSAC and iLBC for audio). For more information, see the [License
182page][license-link].
183
184[license-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/license/index.md
185
186
Mirko Bonadeid8819832020-02-20 14:21:32187### What does this license let me do?
Mirko Bonadei97ba4be2020-02-20 10:53:45188
189Like most BSD licenses, this license allows you to use the WebRTC code with a
190minimum of restrictions on your use. You can use the code in proprietary
191software as well as open source software.
192
193
Mirko Bonadeid8819832020-02-20 14:21:32194### Do I need to release the source if I make changes?
Mirko Bonadei97ba4be2020-02-20 10:53:45195
196No, the license does not require you to release source if you make changes.
197However, we would love to see any changes you make and possibly incorporate
198them, so if you want to participate please visit the
199[code review page][code-review-link] and submit some patches.
200
201[code-review-link]: https://webrtc-review.googlesource.com/
202
203
Mirko Bonadeid8819832020-02-20 14:21:32204### Why is there a separate patent grant?
Mirko Bonadei97ba4be2020-02-20 10:53:45205
206In order to decouple patents from copyright, thus preserving the pure BSD
207nature of the copyright license, the license and the patent grant are
208separate. This means we are using a standard (BSD) open source copyright
209license, and the patent grant can exist on its own. This makes WebRTC
210compatible with all major license scenarios.
211
212
Mirko Bonadeid8819832020-02-20 14:21:32213### What if someone gets the code from Google and gives it to me without changes. Do I have a patent grant from Google?
Mirko Bonadei97ba4be2020-02-20 10:53:45214
215Yes, you still have the right to redistribute and you still have a patent
216license for Google's patents that cover the code that Google released.
217
218
Mirko Bonadeid8819832020-02-20 14:21:32219### What if someone makes a change to the code and gives it to me. Do I have a patent license from Google for that change?
Mirko Bonadei97ba4be2020-02-20 10:53:45220
221You still have the right to redistribute but no patent license for the changes
222(if there are any patents covering it). We can't give patent licenses for
223changes people make after we distribute the code, as we have no way to predict
224what those changes will be. Other common licenses take the same approach,
225including the Apache license.
226
227
Mirko Bonadeid8819832020-02-20 14:21:32228### What if Google receives or buys a patent that covers the code I receive sometime after I receive the code. Do I have a patent grant for that patent?
Mirko Bonadei97ba4be2020-02-20 10:53:45229
230Yes, you still have the right to redistribute and you still have a patent
231license for Google's patents that cover the code that Google released.
232
233
Mirko Bonadeid8819832020-02-20 14:21:32234### What if my competitor uses the code and brings patent litigation against me for something unrelated to the code. Does he or she still have a patent license?
Mirko Bonadei97ba4be2020-02-20 10:53:45235
236Yes, he/she still has the right to redistribute and he/she still has a patent
237license for Google's patents that cover the code that Google released.