1# FAQ 2 3### What is WebRTC? 4 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 17### Why should I use WebRTC? 18 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 40### What is the Opus audio codec? 41 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 50### What is the iSAC audio codec? 51 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 59### What is the iLBC audio codec? 60 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 68### What is the VP8 video codec? 69 70VP8 is a highly-efficient video compression technology developed by the WebM Project. It is the video codec included with WebRTC. 71 72### What is the VP9 video codec? 73 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 78### What other components are included in the WebRTC package? 79 80#### Audio 81 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 89#### Video 90 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 98#### Network 99 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 106### How do I access the WebRTC code? 107 108Go to [https://webrtc.googlesource.com/src][webrtc-repo-link]. 109 110[webrtc-repo-link]: https://webrtc.googlesource.com/src 111 112 113### How can I test the quality of WebRTC components? 114 115We have put sample applications [here][examples-link]. 116 117[examples-link]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md#example-applications 118 119 120### Are WebRTC components subject to change? 121 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 131### WebRTC components are open-source. How do I get the source and contribute code? 132 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/+/main/docs/native-code/development/index.md 137[contributing-link]: https://webrtc.org/support/contributing 138 139 140### To be a Contributor, do I need to sign any agreements? 141 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### How can I become a WebRTC committer? 148 149The process of becoming a committer is documented in a 150[separate page][become-a-committer]. 151 152[become-a-committer]: https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/become_a_committer.md 153 154### Do I have to be a programmer to use WebRTC? 155 156Yes, to build WebRTC support into a software application or contribute 157improvements, programming skills are required. However, usage of the 158JavaScript APIs that call WebRTC in the browsers will only require typical web 159development skills. 160 161 162### Is the WebRTC project owned by Google or is it independent? 163 164WebRTC is an open-source project supported by Google, Mozilla and Opera. The 165API and underlying protocols are being developed jointly at the W3C and IETF. 166 167 168### Are the WebRTC components from Google's acquisition of Global IP Solutions? 169 170Yes. Some components, such as VoiceEngine, VideoEngine, NetEQ, AEC, et al. all 171stem from the GIPS acquisition. 172 173 174### What codecs are supported in WebRTC? 175 176The currently supported voice codecs are G.711, G.722, iLBC, and iSAC, and VP8 177is the supported video codec. The list of supported codecs may change in the 178future. 179 180 181### Please explain how WebRTC is free of charge? 182 183Some software frameworks, voice and video codecs require end-users, 184distributors and manufacturers to pay patent royalties to use the intellectual 185property within the software technology and/or codec. Google is not charging 186royalties for WebRTC and its components including the codecs it supports (VP8 187for video and iSAC and iLBC for audio). For more information, see the [License 188page][license-link]. 189 190[license-link]: https://webrtc.googlesource.com/src/+/main/LICENSE 191 192 193### What does this license let me do? 194 195Like most BSD licenses, this license allows you to use the WebRTC code with a 196minimum of restrictions on your use. You can use the code in proprietary 197software as well as open source software. 198 199 200### Do I need to release the source if I make changes? 201 202No, the license does not require you to release source if you make changes. 203However, we would love to see any changes you make and possibly incorporate 204them, so if you want to participate please visit the 205[code review page][code-review-link] and submit some patches. 206 207[code-review-link]: https://webrtc-review.googlesource.com/ 208 209 210### Why is there a separate patent grant? 211 212In order to decouple patents from copyright, thus preserving the pure BSD 213nature of the copyright license, the license and the patent grant are 214separate. This means we are using a standard (BSD) open source copyright 215license, and the patent grant can exist on its own. This makes WebRTC 216compatible with all major license scenarios. 217 218 219### What if someone gets the code from Google and gives it to me without changes. Do I have a patent grant from Google? 220 221Yes, you still have the right to redistribute and you still have a patent 222license for Google's patents that cover the code that Google released. 223 224 225### 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? 226 227You still have the right to redistribute but no patent license for the changes 228(if there are any patents covering it). We can't give patent licenses for 229changes people make after we distribute the code, as we have no way to predict 230what those changes will be. Other common licenses take the same approach, 231including the Apache license. 232 233 234### 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? 235 236Yes, you still have the right to redistribute and you still have a patent 237license for Google's patents that cover the code that Google released. 238 239 240### What if my competitor uses the code and brings patent litigation against me for something unrelated to the code. Do they still have a patent license? 241 242Yes, they still have the right to redistribute and they still have a patent 243license for Google's patents that cover the code that Google released. 244