★本书是一本WebRTC从入门到进阶的书籍,不仅对WebRTC的网络传输做了细致、大量的分析,而且还向你详细介绍了如何通过WebRTC实现Web端与Android和iOS端的互联互通;最后还对WebRTC的源码进行了剖析,使你不但可以知道如何使用WebRTC实现音视频通信,还能让你了解其中的原理,并知道WebRTC具体是如何做的。
★内容详实、深入浅出、案例丰富,是音视频应用开发工程师必备的参考资料,也可供相关专业的在校学生和入门者学习参考。 得到业内多个行业专家联袂推荐。
★关注“华章计算机”,回复“68501”获取本书配套代码地址及后续例程的更新、通过RTC开发者社区本书专栏地址与作者互动交流。
★本书深入浅出地对WebRTC技术进行了系统讲解,既有原理又有实战,从WebRTC是如何实现实时音视频通信的,到如何应用WebRTC库实现音视频通信,再到WebRTC源码的剖析,逐步展开讲解。此外,对WebRTC的传输系统进行了重点分析,相信读者通过本书可以一窥WebRTC传输的奥秘。
第1~3章介绍音视频实时通信的由来,WebRTC做了什么,以及它要解决什么问题;
第4~10章是实战部分,介绍如何使用WebRTC库实现音视频通信,并对其实现原理进行讲解;
第11~13章对WebRTC源码进行分析,让读者对WebRTC有更深层次的认知。
想了解WebRTC实现的专业开发人员可以通过本书了解WebRTC运转机理;
学生、老师和音视频爱好者可以通过本书了解WebRTC可以做什么,如何通过WebRTC实现音视频的实时通信。
●第1章 音视频直播的前世今生1
1.1音视频的历史1
1.2移动互联网3
1.3音视频直播的两条技术路线3
1.4音视频直播的现状5
1.5音视频直播的未来6
1.6小结7
●第2章 为什么要使用WebRTC8
2.1自研直播客户端架构8
2.1.1拆分音视频模块9
2.1.2跨平台10
2.1.3插件化管理11
2.1.4其他13
2.2WebRTC客户端架构14
2.3小结16
●第3章 音视频实时通信的本质17
3.1两种指标18
3.1.1实时通信延迟指标18
3.1.2音视频服务质量指标19
3.2实时通信的主要矛盾20
3.2.1增加带宽20
3.2.2减少数据量22
3.2.3适当增加时延24
3.2.4提高网络质量24
3.2.5快速准确地评估带宽25
3.3小结25
●第4章 构建WebRTC一对一信令服务器27
4.1WebRTC一对一架构27
4.2细化架构28
4.3信令29
4.3.1信令定义29
4.3.2信令时序30
4.3.3信令传输协议的选择31
4.4构建信令服务器31
4.4.1信令服务器的实现方案32
4.4.2信令服务器的业务逻辑32
4.4.3信令服务器的实现33
4.4.4信令服务器的安装与部署35
4.4.5信令服务器的完整代码37
4.5小结40
●第5章 WebRTC实现一对一通信41
5.1浏览器对WebRTC的支持41
5.2遍历音视频设备42
5.3采集音视频数据44
5.4MediaStream与MediaStreamTrack47
5.5本地视频预览47
5.6信令状态机49
5.7RTCPeerConnection52
5.7.1创建RTCPeerConnection对象52
5.7.2RTCPeerConnection与本地音视频数据绑定53
5.7.3媒体协商54
5.7.4ICE55
5.7.5SDP与Candidate消息的交换57
5.7.6远端音视频渲染58
5.7.7客户端完整例子59
5.8小结82
●第6章 WebRTC中的ICE实现83
6.1Candidate种类与优先级83
6.2ICE策略85
6.3P2P连接87
6.3.1完全锥型NAT89
6.3.2IP限制锥型NAT90
6.3.3端口限制锥型NAT91
6.3.4对称型NAT92
6.3.5NAT类型检测93
6.3.6如何进行NAT穿越97
6.4网络中继101
6.4.1TURN协议中转数据101
6.4.2WebRTC使用TURN协议102
6.4.3STUN/TURN服务器的安装与部署103
6.5小结105
●第7章 WebRTC中的SDP106
7.1SDP标准规范106
7.2WebRTC中SDP的整体结构108
7.3媒体信息110
7.3.1音频媒体信息111
7.3.2视频媒体信息112
7.3.3SSRC与CNAME114
7.4PlanB与UnifiedPlan115
7.5WebRTC如何保证数据安全117
7.6RTP扩展头119
7.7服务质量120
7.8SDP详解122
7.9ORTC131
7.10小结131
●第8章 各端的互联互通132
8.1WebRTCNative的核心132
8.2Android端的实现134
8.2.1申请权限134
8.2.2引入WebRTC库136
8.2.3构造PeerConnection-Factory138
8.2.4创建音视频源138
8.2.5视频采集139
8.2.6视频渲染142
8.2.7创建PeerConnection144
8.2.8建立信令系统146
8.3iOS端的实现146
8.3.1申请权限146
8.3.2引入WebRTC库147
8.3.3构造RTCPeerConnection-Factory148
8.3.4创建音视频源149
8.3.5视频采集150
8.3.6本地视频预览151
8.3.7建立信令系统153
8.3.8创建RTCPeer-Connection155
8.3.9远端视频渲染158
8.4PC端与Mac端的实现159
8.5小结159
●第9章 网络传输协议RTP与RTCP160
9.1如何选择UDP与TCP160
9.2RTP162
9.2.1RTP协议头163
9.2.2RTP的使用165
9.2.3RTP扩展头167
9.2.4RTP中的填充数据170
9.3RTCP171
9.3.1RTCP报文分类171
9.3.2RTCP协议头172
9.3.3WebRTC的反馈报文173
9.4小结174
●第10章 WebRTC拥塞控制175
10.1WebRTC的拥塞控制算法175
10.1.1Goog-REMB176
10.1.2Transport-CC181
10.1.3基于丢包的拥塞评估算法原理184
10.1.4WebRTC拥塞控制流程184
10.2拥塞控制算法比较185
10.2.1拥塞控制的准确性186
10.2.2与TCP连接并存时的公平性187
10.2.3同种类型连接的公平性188
10.2.4拥塞控制算法在丢包情况下的表现189
10.3小结191
●第11章 WebRTC源码分析入门192
11.1WebRTC源码的选择193
11.2WebRTC开发环境的搭建193
11.2.1配置软硬件环境194
11.2.2安装依赖工具包195
11.2.3获取并编译WebRTC代码195
11.3国内WebRTC镜像196
11.4WebRTC目录结构197
11.4.1WebRTC主目录197
11.4.2modules目录198
11.5小结200
●第12章 分析WebRTC源码的必经之路201
12.1信令服务器实现分析201
12.1.1信令服务器的组成202
12.1.2信令服务器的工作流程203
12.2PeerConnection客户端分析206
12.2.1运行peerconnection_client206
12.2.2peerconnection_client的组成207
12.2.3界面的展示213
12.2.4视频的渲染218
12.2.5WebRTC的使用220
12.2.6信令的处理225
12.3小结229
●第13章 WebRTC源码分析231
13.1WebRTC的数据流231
13.2WebRTC线程模型234
13.2.1WebRTC线程的创建与使用234
13.2.2线程切换236
13.3网络传输250
13.3.1网络接收与分发模块类关系图250
13.3.2网络连接的建立251
13.4音视频数据采集256
13.4.1音频采集与播放256
13.4.2视频采集与渲染258
13.5音视频编解码261
13.5.1音频编码261
13.5.2音频解码265
13.5.3视频编码267
13.5.4视频解码270
13.6小结272
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
★1998年WebEx推出网络会议服务以来,音视频多点实时互动技术所支持的多人聊天、办公协同、在线教育、游戏直播等应用越来越被大众认可甚至依赖,前景非常广阔。李超的这本书通过讲解WebRTC的架构和源码,深入浅出、清晰全面地介绍了这个领域的前沿技术,让具有一定编程能力的人可以快速上手做出产品,是这方面非常难得的工具书。
——严石 WebEx创业员工之一, 原全时云平台VP
★李超是流媒体应用领域资深专家,他要出书,是件好事。一方面他多年来在媒体领域的实践和探索经验得以传播,惠及他人;另一方面,也能为业界技术和应用的推广提供助力。这本书值得希望钻研WebRTC的读者拥有。
——包研 LiveVideoStack 创始人
★李超老师的这本书内容十分实用,原理清晰,实战性强,能够让初学者跟着节奏一步一步地轻松实现一套WebRTC实时互动系统,是一本值得多次阅读的好书。
——刘歧 《FFmpeg从入门到精通》作者,FFmpeg官方代码维护者
★这本书结合作者的实际经验,从音视频通信的历史讲起,深入浅出地讲解了WebRTC通信的原理、特点及应用场景,更从源代码角度深入剖析了WebRTC通信的关键要素和细节,内容全面又不失深度,适合各水平的音视频从业人员阅读。
——杜金房 《FreeSWITCH权威指南》作者
★实时互动RTC技术无疑是“全真互联网”时代的金钥匙,而WebRTC作为实时音视频技术领域广泛应用的标准,有着无数的拥趸。作为多年前的老同事,我非常高兴超哥能把这么多年在RTC方面的经验加以总结,将WebRTC的相关概念、架构、疑难解析、示例等结合起来,形成一本非常好看又实用的技术书籍。这本书既能帮助初学者熟悉RTC相关技术,掌握实时音视频领域的专业概念和最佳实践,也能助力在RTC领域耕耘多年的从业者进一步拓展技术领域,改进自己的系统,并进行不同场景的探索。希望大家阅读后有更多收获。
——董海兵 Agora声网教育行业架构师