目录

前言

WebRTC 简介

更多资料

WebRTC的目标

WebRTC技术架构图

WebRTC架构组件介绍

1Your Web App

2Web API

3WebRTC Native C++ API

4Transport / Session

5VoiceEngine

6VideoEngine

参考文档


前言

说到 WebRTC,我们不得不提到 Gobal IP Solutions,简称 GIPS。这是一家 1990 年成立于瑞典斯德哥尔摩的 VoIP 软件开发商,提供了可以说是世界上最好的语音引擎。相关介绍详见《访谈WebRTC标准之父:WebRTC的过去、现在和未来》。

Skype、腾讯 QQ、WebEx、Vidyo 等都使用了它的音频处理引擎,包含了受专利保护的回声消除算法,适应网络抖动和丢包的低延迟算法,以及先进的音频编解码器。

Google 在 Gtalk 中也使用了 GIPS 的授权。Google 在 2011 年收购了 GIPS,并将其源代码开源,加上在 2010 年收购的 On2 获取到的 VPx 系列视频编解码器(详见《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》),WebRTC 开源项目应运而生,即 GIPS 音视频引擎 + 替换掉 H.264 的 VPx 视频编解码器。

在此之后,Google 又将在 Gtalk 中用于 P2P 打洞的开源项目 libjingle 融合进了 WebRTC。所以目前 WebRTC 提供了在 Web、iOS、Android、Mac、Windows、Linux 在内的所有平台的 API,保证了 API 在所有平台的一致性。

基于这些先进技术,使用 WebRTC 的为我们带来的好处主要有以下几个方面:

  • 免费的使用 GIPS 先进的音视频引擎,在此之前都需要付费授权;
  • 由于音视频传输是基于点对点传输的,所以实现简单的 1 对 1 通话场景,需要较少的服务器资源,借助免费的 STUN/TURN 服务器可以大大节约成本开销;
  • 开发 Web 版本的应用非常方便,使用简单的 JS 接口,无需安装任何插件,即可实现音视频互通。

WebRTC 简介

WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。

WebRTC提供了实时音视频的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。

虽然WebRTC的目标是实现跨平台的Web端实时音视频通讯,但因为核心层代码的Native、高品质和内聚性,开发者很容易进行除Web平台外的移殖和应用。很长一段时间内WebRTC是业界能免费得到的唯一高品质实时音视频通讯技术。

更多资料

《良心分享:WebRTC 零基础开发者教程(中文)》
《WebRTC实时音视频资料精选》
《官方权威入门文档:Getting Started with WebRTC》

另外,你也可以访问WebRTC的官方网站,各种权威资料都能找到,但内容都是英文的:https://webrtc.org。

WebRTC的目标

WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\…)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现。

W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本、Draft状态。

另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。

WebRTC技术架构图

架构图颜色标识说明:

  • 紫色部分是Web开发者API层;
  • 蓝色实线部分是面向浏览器厂商的API层(也就是红色框标内模块)
  • 蓝色虚线部分浏览器厂商可以自定义实现

官方给出的平台支持情况:

WebRTC架构组件介绍

1Your Web App

Web开发者开发的程序,Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视频、音频的实时通信应用。

2Web API

面向第三方开发者的WebRTC标准API(Javascript),使开发者能够容易地开发出类似于网络视频聊天的web应用,最新的标准化进程可以查看这里。

3WebRTC Native C++ API

本地C++ API层,使浏览器厂商容易实现WebRTC标准的Web API,抽象地对数字信号过程进行处理。

4Transport / Session

传输/会话层:会话层组件采用了libjingle库的部分组件实现,无须使用xmpp/jingle协议。

- a.  RTP Stack协议栈:Real Time Protocol;
- b.  STUN/ICE:可以通过STUN和ICE组件来建立不同类型网络间的呼叫连接;
- c.  Session Management:一个抽象的会话层,提供会话建立和管理功能。该层协议留给应用开发者自定义实现。

官方给出的WebRTC STUN原理图:

官方给出的WebRTC P2P数据收发原理图:

5VoiceEngine

音频引擎是包含一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。

VoiceEngine是WebRTC极具价值的技术之一,是Google收购GIPS公司后开源的。在VoIP上,技术业界领先。

a. iSAC
Internet Speech Audio Codec:针对VoIP和音频流的宽带和超宽带音频编解码器,是WebRTC音频引擎的默认的编解码器。

  • 采样频率:16khz,24khz,32khz;(默认为16khz)
  • 自适应速率为10kbit/s ~ 52kbit/;
  • 自适应包大小:30~60ms;
  • 算法延时:frame + 3ms

b. iLBC
Internet Low Bitrate Codec:VoIP音频流的窄带语音编解码器。标准由IETF RFC3951和RFC3952定义。

  • 采样频率:8khz;
  • 20ms帧比特率为15.2kbps
  • 30ms帧比特率为13.33kbps

c. NetEQ for Voice
针对音频软件实现的语音信号处理元件。NetEQ算法:自适应抖动控制算法以及语音包丢失隐藏算法。使其能够快速且高解析度地适应不断变化的网络环境,确保音质优美且缓冲延迟最小。是GIPS公司独步天下的技术,能够有效的处理由于网络抖动和语音包丢失时候对语音质量产生的影响。

NetEQ 也是WebRTC中一个极具价值的技术,对于提高VoIP质量有明显效果,加以AEC\NR\AGC等模块集成使用,效果更好。

d. Acoustic Echo Canceler (AEC)
回声消除器是一个基于软件的信号处理元件,能实时的去除mic采集到的回声。

e. Noise Reduction (NR)
噪声抑制也是一个基于软件的信号处理元件,用于消除与相关VoIP的某些类型的背景噪声(嘶嘶声,风扇噪音等等… …)

6VideoEngine

WebRTC视频处理引擎:VideoEngine是包含一系列视频处理的整体框架,从摄像头采集视频到视频信息网络传输再到视频显示整个完整过程的解决方案。

a. VP8
视频图像编解码器,是WebRTC视频引擎的默认的编解码器。VP8适合实时通信应用场景,因为它主要是针对低延时而设计的编解码器。

VPx编解码器是Google收购ON2公司后开源的,VPx现在是WebM项目的一部分,而WebM项目是Google致力于推动的HTML5标准之一。

b. Video Jitter Buffer
视频抖动缓冲器,可以降低由于视频抖动和视频信息包丢失带来的不良影响。

c. Image enhancements
图像质量增强模块:对网络摄像头采集到的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。

参考文档

WebRTC 简单入门与实践_ZEGO即构科技的博客-CSDN博客_webrtc教程

https://webrtc.github.io/samples/

https://webrtc.org.cn/

WebRTC API深度解析——getUserMedia | WebRTC中文网-最权威的RTC实时通信平台

性能及结构研究

使用级联SFU提高媒体质量和规模 | WebRTC中文网-最权威的RTC实时通信平台

octo-rtp通信系统

https://www.wenjiangs.com/doc/tfrzzylg

[资讯] 实时音视频开源工程WebRTC正式成为标准! - 资讯 - 即时通讯开发者社区!

WebRTC API深度解析——getUserMedia | WebRTC中文网-最权威的RTC实时通信平台

WebRTC技术总结相关推荐

  1. 基于webRTC技术 音频和视频,IM解

    由于原来的文章 http://blog.csdn.net/voipmaker  转载注明出处. 基于WebRTC技术可实现点对点音视频.即时通信.视频会议.最新的系统组件包含: TeleICE NAT ...

  2. 5月19-20日WebRTCon 2018 梳理全球WebRTC技术实践与案例

    4月17日,距离WebRTCon 2018举行还有一个多月的时间,这是由音视频技术社区LiveVideoStack发起的WebRTC生态大会.大会将聚焦WebRTC技术实践与应用案例两大主线,旨在为W ...

  3. 展望2018:WebRTC技术现状、应用开发与前景

    2017年,苹果宣布将在iOS 11中支持WebRTC,至此完成了主流PC浏览器.移动端的全覆盖,而其提供了一整套完备的音视频通信方案,这给开发者带来了巨大利好.英特尔协同通信解决方案架构师段先德针对 ...

  4. 《Getting Started with WebRTC》第二章 WebRTC技术介绍

    <Getting Started with WebRTC>第二章 WebRTC技术介绍 本章作WebRTC的技术介绍,主要讲下面的概念:   .  怎样建立P2P的通信   .  有效的信 ...

  5. WebRTC技术详解

    随着4G的普及和5G技术的应用,实时音视频技术正在蓬勃发展.实时通信技术已经渗透到各行各业,支撑着人们的日常生活.在互联网领域,花椒.映客等直播平台吸引了大量的用户:在教育领域,通过实时直播技术搭建的 ...

  6. 推荐书籍:WebRTC技术详解 从0到1构建多人视频会议系统

    WebRTC技术应用领域: 5G商用.在线教育.视频会议.在线医疗.直播短视频 为什么学习WebRTC这么难? NO.1 中文技术规范少 NO.2 从业人员少,专业技术性强 NO.3 技术覆盖面广,难 ...

  7. WebRTC技术实现视频及语音聊天

    WebRTC技术实现视频及语音聊天 1.安装第三方skyway-sdk sdk文档地址:https://webrtc.ecl.ntt.com/en/documents/javascript-sdk.h ...

  8. 纯CSS3实现3D动画导航,html5 webRTC技术实现免费网页电话拨打

    花了一周的时间完成了 说吧 (免费网页电话) 的前端开发工作,先将技术点总结如下: 免费电话采用最新的html5 webRTC 技术 实现互联网和电信MIS网互通实现网页电话,目前只有 google ...

  9. WebRTC技术专题(2)【大势所趋,迈向认识 WebRTC 的第一步】

    每日一句 人生的挑战,无处不在,满怀信心,轻装上路,明天永远是充满希望的战场. 承接上文 承接上文的内容介绍完相关WebRTC技术的概念和发展历程后,开始初步摸索一下相关WebRTC技术的功能和原理. ...

最新文章

  1. mysql数据库查询全部信息_mysql 查询怎么获取数据库下所有表的信息?
  2. eclipse开发javaweb项目配置tomcat
  3. webpake-node-sass 报错
  4. 【转载】JSON介绍
  5. wpf datagrid 表格内容自动计算_施工测绘20套测量自动计算表格,无脑输入数据出结果...
  6. 苹果进入后 iPhone 时代!
  7. is_null,is_numeric
  8. mid、mif文件转shapefile、geojson等格式的数据
  9. SPSS干货:区分T检验与F检验
  10. pycharm复制一行
  11. python四分位数_python 计算箱线图、中位数、上下四分位数等
  12. Python sklearn针对不同人群的差异化保险费用定价方案
  13. php经典实例博客管理,PHP经典项目案例-(一)博客管理系统2
  14. 算法竞赛进阶指南 激光炸弹
  15. QtAndroid具体解释(6):集成信鸽推送
  16. CNVD-2022-03672/CNVD-2022-10270:向日葵简约版/向日葵个人版for Windows命令执行漏洞复现及修复建议
  17. mscbsc移动通信论坛_中国移动5G资费被确认,流量低至1毛/G, 联通电信又被动,网友:良心价...
  18. 让人扎心的Nginx rewrite跳转及Location
  19. 用卷积神经网络和自注意力机制实现QANet(问答网络)
  20. 华为云桌面——云上办公安全高效,高清流畅

热门文章

  1. 深度神经网络压缩与加速总结
  2. 用计算机弹出黑人才关的声音,计算机突然变黑,风扇发出很大的声音?
  3. 【翻译】Presto: SQL on Everything
  4. 《计算机世界》:应用软件商店呐喊、彷徨(上)
  5. CXM百科 | 知了知了,NPS知多少
  6. SAP销售订单历史修改后台表
  7. 电脑上使用的便签纸电子版类型的软件可用什么软件?
  8. k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解
  9. thymeleaf th:value 多个值拼接 使用+号(不适用于th:field)
  10. MIT6.828 lab1 exercise 23