|  | # FAQ | 
|  |  | 
|  | ### What is WebRTC? | 
|  |  | 
|  | WebRTC is an open framework for the web that enables Real Time Communications | 
|  | in the browser. It includes the fundamental building blocks for high-quality | 
|  | communications on the web, such as network, audio and video components used in | 
|  | voice and video chat applications. | 
|  |  | 
|  | These components, when implemented in a browser, can be accessed through a | 
|  | JavaScript API, enabling developers to easily implement their own RTC web app. | 
|  |  | 
|  | The WebRTC effort is being standardized on an API level at the W3C and at the | 
|  | protocol level at the IETF. | 
|  |  | 
|  |  | 
|  | ### Why should I use WebRTC? | 
|  |  | 
|  | We think you'll want to build your next video-chat style application using | 
|  | WebRTC. Here's why: | 
|  |  | 
|  | * A key factor in the success of the web is that its core technologies -- | 
|  | such as HTML, HTTP, and TCP/IP -- are open and freely implementable. | 
|  | Currently, there is no free, high-quality, complete solution available | 
|  | that enables communication in the browser. WebRTC enables this. | 
|  |  | 
|  | * Already integrated with best-of-breed voice and video engines that have | 
|  | been deployed on millions of endpoints over the last 8+ years. Google does | 
|  | not charge royalties for WebRTC. | 
|  |  | 
|  | * Includes and abstracts key NAT and firewall traversal technology, using | 
|  | STUN, ICE, TURN, RTP-over-TCP and support for proxies. | 
|  |  | 
|  | * Builds on the strength of the web browser: WebRTC abstracts signaling by | 
|  | offering a signaling state machine that maps directly to `PeerConnection`. | 
|  | Web developers can therefore choose the protocol of choice for their usage | 
|  | scenario (for example, but not limited to, SIP, XMPP/Jingle, et al.). | 
|  |  | 
|  |  | 
|  | ### What is the Opus audio codec? | 
|  |  | 
|  | [Opus][opus-link] is a royalty-free audio codec defined by IETF | 
|  | RFC 6176.  It supports constant and variable bitrate encoding from 6 kbit/s to | 
|  | 510 kbit/s, frame sizes from 2.5 ms to 60 ms, and various sampling rates from | 
|  | 8 kHz (with 4 kHz bandwidth) to 48 kHz (with 20 kHz bandwidth, where the | 
|  | entire hearing range of the human auditory system can be reproduced). | 
|  |  | 
|  | [opus-link]: http://opus-codec.org/ | 
|  |  | 
|  | ### What is the iSAC audio codec? | 
|  |  | 
|  | iSAC is a robust, bandwidth-adaptive, wideband and super-wideband voice codec | 
|  | developed by Global IP Solutions, and is used in many Voice over IP (VoIP) and | 
|  | streaming audio applications. iSAC is used by industry leaders in hundreds of | 
|  | millions of VoIP endpoints. This codec is included as part of the WebRTC | 
|  | project. | 
|  |  | 
|  |  | 
|  | ### What is the VP8 video codec? | 
|  |  | 
|  | VP8 is a highly-efficient video compression technology developed by the WebM Project. It is the video codec included with WebRTC. | 
|  |  | 
|  | ### What is the VP9 video codec? | 
|  |  | 
|  | Similar 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]. | 
|  |  | 
|  | [vp9-link]: https://developers.google.com/web/updates/2016/01/vp9-webrtc/ | 
|  |  | 
|  | ### What other components are included in the WebRTC package? | 
|  |  | 
|  | #### Audio | 
|  |  | 
|  | WebRTC offers a complete stack for voice communications. It includes not only | 
|  | the necessary codecs, but other components necessary to great user | 
|  | experiences. This includes software-based acoustic echo cancellation (AEC), | 
|  | automatic gain control (AGC), noise reduction, noise suppression, and | 
|  | hardware access and control across multiple platforms. | 
|  |  | 
|  |  | 
|  | #### Video | 
|  |  | 
|  | The WebRTC project builds on the VP8 codec, introduced in 2010 as part of the | 
|  | [WebM Project][webm-link]. It includes components to conceal | 
|  | packet loss and clean up noisy images, as well as capture and playback | 
|  | capabilities across multiple platforms. | 
|  |  | 
|  | [webm-link]: http://www.webmproject.org/ | 
|  |  | 
|  | #### Network | 
|  |  | 
|  | Dynamic jitter buffers and error concealment techniques are included for audio | 
|  | and video, which help mitigate the effects of packet loss and unreliable | 
|  | networks. Also included are components for establishing a peer-to-peer | 
|  | connection using ICE / STUN / Turn / RTP-over-TCP and support for proxies. | 
|  |  | 
|  |  | 
|  | ### How do I access the WebRTC code? | 
|  |  | 
|  | Go to [https://webrtc.googlesource.com/src][webrtc-repo-link]. | 
|  |  | 
|  | [webrtc-repo-link]: https://webrtc.googlesource.com/src | 
|  |  | 
|  |  | 
|  | ### How can I test the quality of WebRTC components? | 
|  |  | 
|  | We have put sample applications [here][examples-link]. | 
|  |  | 
|  | [examples-link]: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/development/README.md#example-applications | 
|  |  | 
|  |  | 
|  | ### Are WebRTC components subject to change? | 
|  |  | 
|  | WebRTC is based on a API that is still under development through efforts at | 
|  | WHATWG, W3C and IETF. We hope to get to a stable API once a few browser | 
|  | vendors have implementations ready for testing. Once the API is stable, our | 
|  | goal will be to offer backwards compatibility and interoperability. The WebRTC | 
|  | API layer will be our main focus for stability and interoperability. The | 
|  | components under it may be modified to improve quality, performance and | 
|  | feature set. | 
|  |  | 
|  |  | 
|  | ### WebRTC components are open-source. How do I get the source and contribute code? | 
|  |  | 
|  | Please see [Getting Started][getting-started-link] and | 
|  | [Contributing bug fixes][contributing-link] for more information. | 
|  |  | 
|  | [getting-started-link]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/ | 
|  | [contributing-link]: https://webrtc.org/support/contributing | 
|  |  | 
|  |  | 
|  | ### To be a Contributor, do I need to sign any agreements? | 
|  |  | 
|  | Yes, each Contributor must sign and return the | 
|  | [Contributor License Agreement][cla-link] | 
|  |  | 
|  | [cla-link]: https://developers.google.com/open-source/cla/individual?hl=en | 
|  |  | 
|  | ### How can I become a WebRTC committer? | 
|  |  | 
|  | The process of becoming a committer is documented in a | 
|  | [separate page][become-a-committer]. | 
|  |  | 
|  | [become-a-committer]: https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/become_a_committer.md | 
|  |  | 
|  | ### Do I have to be a programmer to use WebRTC? | 
|  |  | 
|  | Yes, to build WebRTC support into a software application or contribute | 
|  | improvements, programming skills are required. However, usage of the | 
|  | JavaScript APIs that call WebRTC in the browsers will only require typical web | 
|  | development skills. | 
|  |  | 
|  |  | 
|  | ### Is the WebRTC project owned by Google or is it independent? | 
|  |  | 
|  | WebRTC is an open-source project supported by Google, Mozilla and Opera. The | 
|  | API and underlying protocols are being developed jointly at the W3C and IETF. | 
|  |  | 
|  |  | 
|  | ### Are the WebRTC components from Google's acquisition of Global IP Solutions? | 
|  |  | 
|  | Yes. Some components, such as VoiceEngine, VideoEngine, NetEQ, AEC, et al. all | 
|  | stem from the GIPS acquisition. | 
|  |  | 
|  |  | 
|  | ### What codecs are supported in WebRTC? | 
|  |  | 
|  | The currently supported voice codecs are G.711, G.722, iLBC, and iSAC, and VP8 | 
|  | is the supported video codec. The list of supported codecs may change in the | 
|  | future. | 
|  |  | 
|  |  | 
|  | ### Please explain how WebRTC is free of charge? | 
|  |  | 
|  | Some software frameworks, voice and video codecs require end-users, | 
|  | distributors and manufacturers to pay patent royalties to use the intellectual | 
|  | property within the software technology and/or codec. Google is not charging | 
|  | royalties for WebRTC and its components including the codecs it supports (VP8 | 
|  | for video and iSAC and iLBC for audio).  For more information, see the [License | 
|  | page][license-link]. | 
|  |  | 
|  | [license-link]: https://webrtc.googlesource.com/src/+/main/LICENSE | 
|  |  | 
|  |  | 
|  | ### What does this license let me do? | 
|  |  | 
|  | Like most BSD licenses, this license allows you to use the WebRTC code with a | 
|  | minimum of restrictions on your use. You can use the code in proprietary | 
|  | software as well as open source software. | 
|  |  | 
|  |  | 
|  | ### Do I need to release the source if I make changes? | 
|  |  | 
|  | No, the license does not require you to release source if you make changes. | 
|  | However, we would love to see any changes you make and possibly incorporate | 
|  | them, so if you want to participate please visit the | 
|  | [code review page][code-review-link] and submit some patches. | 
|  |  | 
|  | [code-review-link]: https://webrtc-review.googlesource.com/ | 
|  |  | 
|  |  | 
|  | ### Why is there a separate patent grant? | 
|  |  | 
|  | In order to decouple patents from copyright, thus preserving the pure BSD | 
|  | nature of the copyright license, the license and the patent grant are | 
|  | separate. This means we are using a standard (BSD) open source copyright | 
|  | license, and the patent grant can exist on its own. This makes WebRTC | 
|  | compatible with all major license scenarios. | 
|  |  | 
|  |  | 
|  | ### What if someone gets the code from Google and gives it to me without changes. Do I have a patent grant from Google? | 
|  |  | 
|  | Yes, you still have the right to redistribute and you still have a patent | 
|  | license for Google's patents that cover the code that Google released. | 
|  |  | 
|  |  | 
|  | ### 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? | 
|  |  | 
|  | You still have the right to redistribute but no patent license for the changes | 
|  | (if there are any patents covering it). We can't give patent licenses for | 
|  | changes people make after we distribute the code, as we have no way to predict | 
|  | what those changes will be. Other common licenses take the same approach, | 
|  | including the Apache license. | 
|  |  | 
|  |  | 
|  | ### 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? | 
|  |  | 
|  | Yes, you still have the right to redistribute and you still have a patent | 
|  | license for Google's patents that cover the code that Google released. | 
|  |  | 
|  |  | 
|  | ### 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? | 
|  |  | 
|  | Yes, they still have the right to redistribute and they still have a patent | 
|  | license for Google's patents that cover the code that Google released. |