mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
Add FAQ page for git repo.
No-Try: True Bug: None Change-Id: I6737b5adee6e3db45b5825a01460b66690eec896 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168883 Reviewed-by: Patrik Höglund <phoglund@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30571}
This commit is contained in:
parent
1a290e4495
commit
97ba4be4b7
1 changed files with 235 additions and 0 deletions
235
docs/faq.md
Normal file
235
docs/faq.md
Normal file
|
@ -0,0 +1,235 @@
|
|||
# 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 iLBC audio codec?
|
||||
|
||||
iLBC is a free narrowband voice codec that was developed by Global IP
|
||||
Solutions, and is used in many Voice over IP (VoIP) and streaming audio
|
||||
applications. In 2004, the final IETF RFC versions of the iLBC codec
|
||||
specification and the iLBC RTP Profile draft became available. 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/master/docs/native-code/development/index.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/+/refs/heads/master/docs/native-code/development/index.md
|
||||
[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
|
||||
|
||||
|
||||
# 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/+/refs/heads/master/docs/license/index.md
|
||||
|
||||
|
||||
# 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. Does he or she still have a patent license?
|
||||
|
||||
Yes, he/she still has the right to redistribute and he/she still has a patent
|
||||
license for Google's patents that cover the code that Google released.
|
Loading…
Reference in a new issue