- WebRTC Blueprints
- Andrii Sergiienko
- 989字
- 2021-07-16 11:42:51
What is WebRTC?
Web Real-Time Communication (WebRTC) is a new (still under development) open framework for the Web to enable browser-to-browser applications for audio/video calling, video chats, and peer-to-peer file sharing without any additional third-party software/plugins.
It was open sourced by Google in 2011 and includes the fundamental building components for high-quality communication on the Web. These components, when implemented in a browser, can be accessed through a JavaScript API, enabling developers to build their own rich media web applications. Google, Mozilla, and Opera support WebRTC and are involved in the development process.
The following are the major components of the WebRTC API:
getUserMedia
: This component allows a web browser to access the camera and microphonePeerConnection
: This component sets up audio/video callsDataChannels
: This component allows browsers to share data through peer-to-peer connections
The WebRTC technology contains a complete stack for voice communications, which includes all the necessary codecs. In addition, it provides software-based AEC (acoustic echo cancellation), AGC (automatic gain control), and noise reduction/suppression.
WebRTC also provides the following modern and powerful possibilities to utilize video communications:
- The VP8 codec
- Conceal packet loss
- Clean up noisy images
- Capture and playback capabilities
Peer-to-peer connections can be established using the built-in key NAT/firewall traversal technology using ICE/STUN/TURN and support proxies. So, you don't need to use any special third-party technologies to build a peer-to-peer communication between the customers located behind a firewall or NAT.
To help mitigate the effects of packet loss and unreliable networks, WebRTC supports dynamic jitter buffers and error concealment techniques for audio or video communications.
Supported platforms and devices
WebRTC is a very new technology and is still being developed. Thus, right now, there are still platforms and web browsers that don't support it at all yet or support partially.
WebRTC is supported in the following desktop browsers:
- Google Chrome Version 23 and higher
- Mozilla Firefox Version 22 and higher
- Opera Version 18 and higher
- Internet Explorer doesn't support WebRTC yet, but this can be solved using the Chrome Component for IE
At the time of writing this book, the web browser WebRTC API is natively supported only in the Android platform.
- Google Chrome Version 29 and higher
- Mozilla Firefox Version 24 and higher
- Opera Mobile Version 12 and higher
- Google Chrome OS
Codecs that are supported in WebRTC
For audio calls, the supported codecs are Opus, G.711, G.722, iLBC, and iSAC.
For video communication, VP8 is the only supported codec at the moment.
Considering that WebRTC is still under development, the list of supported codecs may change in the future.
Why should I use WebRTC?
Currently, there are no easy-to-use, high quality, and complete solutions available that would enable communication using just a web browser. Until today, if you wanted to build a rich media cross-platform web application, you had to use Flash, Java Applets, and a bunch of third-party plugins to make it work. Such solutions usually are heavyweight and difficult to implement and support.
This leads to a situation where we have Internet access in almost every apartment across the world, but we still don't have a simple and effective solution for audio/video rich media applications.
WebRTC is a technology that is intended to solve this situation. It is already integrated with the best voice and video engines that have been deployed on millions of end points over recent years.
With this technology, you can use a universal API and a set of built-in technologies and components to build your applications, and you don't need to keep in mind a bunch of platforms and operating systems you would like your application to support.
The following are the applications you can easily build using WebRTC:
- Peer-to-peer audio/video conferences
- Pre-recorded video streaming
- Desktop screen casting
- Peer-to-peer file sharing and transferring
- An interactive language school
- Webinars
- A job interview service
- A distributed radio broadcasting service
- A distance learning school
- An interactive dating service
Again, you don't need to use any additional software or libraries. You have to use just the WebRTC API supported by most web browsers today. It works great for Windows, Linux, or Mac OS X without special efforts from the developer.
I believe that after reading this book, you'll want to build your next interactive media web application using WebRTC.
Benefits of using WebRTC in your business
The following are the benefits of using WebRTC in your business:
- Reducing costs: WebRTC is a free and open source technology. You don't need to pay for complex proprietary solutions. IT deployment and support costs can be lowered because now you don't need to deploy special client software for your customers.
- Plugins: You don't need plugins at all. Previously, you had to use Flash, Java Applets, and other tricky solutions to build interactive rich media web applications. Customers had to download and install third-party plugins to be able to use your media content. You also had to keep in mind different solutions/plugins for a variety of operating systems and platforms. Now you no longer need to care about this.
- Peer-to-peer communication: In most cases, communication will be established directly between your customers and you don't need to have a middle point of contact.
- Easy to use: You don't need to be a professional programmer or have a team of certified developers with some kind of specific knowledge. In a basic case, you can easily integrate the WebRTC functionality into your web services/sites by using the JavaScript API or even by using a ready-to-go framework.
- A single solution for all platforms: You don't need to develop a special native version of your web service for different platforms (iOS, Android, Windows, and others). WebRTC is developed to be a cross-platform and universal tool.
- WebRTC is open source and free: A community can discover new bugs and solve them effectively and quickly. Moreover, it is developed and standardized by the world software companies such as Mozilla, Google, and Opera.
- 液晶彩電上門維修速查手冊(第2版)
- 中國自動化技術(shù)發(fā)展報告
- 室內(nèi)分布系統(tǒng)規(guī)劃設(shè)計手冊
- 電子技術(shù)(第3版)
- 邊緣計算光網(wǎng)絡(luò)
- 信息理論與編碼
- 通信工程設(shè)計
- 嵌入式系統(tǒng)及其在無線通信中的應(yīng)用開發(fā)
- 聲紋技術(shù):從核心算法到工程實踐
- 通信那些事兒(上冊)
- 光電定位與光電對抗
- 軟件創(chuàng)富密碼:iPhone應(yīng)用程序開發(fā)攻略之iPhone特色傳感器應(yīng)用
- LED照明設(shè)計與應(yīng)用
- 電磁兼容設(shè)計與整改對策及案例分析
- CCENT-CCNA:ICND1 100-105 Certification Guide