WebRTC音视频开发:React+Flutter+Go实战
上QQ阅读APP看书,第一时间看更新

1.1 WebRTC是什么

WebRTC(Web Real-Time Communication,网页即时通信)于2011年6月1日开源,并在Google、Mozilla、Opera的支持下被纳入万维网联盟的W3C推荐标准,它通过简单的API为浏览器和移动应用程序提供实时通信(RTC)的功能。

很明显,实时音视频通信比文本通信更加生动有效,是现今人们通过网络进行互动交流的新方式。

但实时音视频技术发展很不顺利,经历了很长一段开发历程。历史上,曾需要昂贵的音视频技术授权或者花费巨大代价去开发,RTC技术与现有的内容、数据和服务整合一直都很困难和耗时,在网络上尤其如此。

Gmail视频聊天在2008年开始流行,2011年,Google推出视频群聊,它使用GoogleTalk服务,就像Gmail一样。GIPS是一个为RTC开发出许多组件的一个公司(后被Google收购),例如编解码和回声消除技术,其中回声技术是一个核心技术,只被少数科技公司掌握。

WebRTC是一个由Google发起的实时通信解决方案,其中包含视频/音频采集、编解码、数据传输、音视频展示等功能。当WebRTC开源后,这项技术并不那么神秘了。Google开源了GIPS开发的技术,并与W3C制定了行业标准。在2011年5月,爱立信实现了第一个WebRTC应用。

其实,以前许多网络服务公司已经使用了RTC技术,包括Skype、Facebook、Google Hangouts等产品,但是需要使用者下载本地应用或者插件。下载安装并升级插件是复杂的、可能出错、令人厌烦的事情;插件可能很难部署、调试、排除故障等,还可能需要技术授权,集成复杂且昂贵,说服人们去安装插件是很难的。

WebRTC项目的原则是API开源、免费、标准化、浏览器内置,比现有的技术更高效。WebRTC虽然冠以“Web”之名,但并不受限于传统互联网应用或浏览器的终端运行环境。实际上,无论终端运行环境是浏览器、桌面应用、移动设备(Android或iOS)还是IoT设备,只要IP连接可到达且符合WebRTC规范就可以互通。这一点释放了大量智能终端(或运行在智能终端上的App)的实时通信能力,打开了许多对于实时交互性要求较高的应用场景的想象空间,如在线教育、视频会议、视频社交、远程协助、远程操控等,都是其合适的应用领域。

WebRTC主要应用在实时通信方面,其优点总结为如下几点。

·跨平台:可以在Web、Android、iOS、Windows、MacOS、Linux环境下运行WebRTC应用。

·实时传输:传输速度快,延迟低,适合实时性要求较高的应用场景。

·音视频引擎:强大的音视频处理能力。

·免插件:不需要安装任何插件,打开浏览器即可使用。

·免费:虽然WebRTC技术已经较为成熟,集成了最佳的音视频引擎和十分先进的Codec,但仍是免费的。

·强大的打洞能力:WebRTC技术包含了使用STUN、ICE、TURN、RTP-over-TCP的关键NAT和防火墙穿透技术,并支持代理。

·主流浏览器支持:包括Chrome、Safari、Firefox、Edge等。

WebRTC的应用场景十分广泛,尤其是在网络越来越发达的情况下。音视频会议、在线教育、即时通信工具、游戏、人脸识别等,是当下和未来的重要发展方向,5G时代的到来必然会引起对WebRTC井喷式的应用。WebRTC目前主要的应用领域如下。

·音视频会议

·在线教育

·照相机

·音乐播放器

·共享远程桌面

·录制

·即时通信工具

·P2P网络加速

·文件传输工具

·游戏

·实时人脸识别