[套装书]WebRTC音视频实时互动技术:原理、实战与源码分析+WebRTC音视频开发:React+Flutter+Go实战(2册)

作者
李超 亢少军
丛书名
Web开发技术丛书
出版社
机械工业出版社
ISBN
9782107161841
简要
简介
内容简介书籍计算机书籍 ---------------------------8082407 - WebRTC音视频实时互动技术:原理、实战与源码分析--------------------------- 本书分成四大部分: ? 第1部分为基础篇,主要介绍 WebRTC是干什么的,大体结构是怎样的。我们该如何下载源码,如何对源码进行编译以及 WebRTC 的目录结构是如何安排的,每个目录的主要作用是什么。 实际上,目前90% 的同学还不清楚WebRTC 的源码该如何下载,源码下载后该如何编译。之所以会有这个问题是因为 WebRTC 的代码量过于庞大,必须要命名用它自己的工具进行下载。而困难点在于国内不能直接访问 WebRTC 的源码地址,这就给很多学习者带来了特别大的困难。 另一方面, WebRTC 的编译工具也是自己写的,不是我们通常使用的编译工具。 因此,对于一个新手来说,可以几周甚至几个月都搞不定这件事儿。 ? 第2部分为应用该,在这部分核心的目的是要向读者讲明白如何通过 WebRTC 实现 1对1 的通信。要实现一个 1:1 的实时通信系统,必然要涉及到很多知识。如 SDP协议,媒体协商过程,NAT穿越,信令通信等等相关的知识。因此,在这部分我以实现 WebRTC 1对1实时通信为目的,让读者讲解必要的知识,从而为后面知识的讲解打好基础。 ? 第3部分是本书的核心内容,首先向读者讲解 WebRTC 的整体框架,让他们对 WebRTC 有个全局的认识,之后再逐步向他们介绍 WebRTC 如何采集音视频灵敏据,如何进行音视频的编解码,如何播放声音,如何渲染视频等相关的知识。 ? 第4部分是提高篇,在这部分我会向读者讲解我们在使用 WebRTC 时经常要解决的一些问题。如 如何给 WebRTC 增加模块,即目录是的增加 x264 视频编解码模块,AAC音频编解码模块,在WebRTC中是如何将多路音频进行混音的, WebRTC是如何进行回音清除的等相关的内容。 . ---------------------------8074642 - WebRTC音视频开发:React+Flutter+Go实战--------------------------- 本书系统介绍WebRTC技术的原理与应用,主要内容包括:WebRTC技术发展历史、应用场景、整体架构,WebRTC通话原理,Web开发环境搭建,HTML5项目简介,访问设备的设置,音视频设备的设置,音视频的录制,结合React+Flutter+Go技术开发音视频应用的案例。
目录
[套装书具体书目]
8074642 - WebRTC音视频开发:React+Flutter+Go实战 - 9787111664468 - 机械工业出版社 - 定价 99
8082407 - WebRTC音视频实时互动技术:原理、实战与源码分析 - 9787111685012 - 机械工业出版社 - 定价 89



---------------------------8082407 - 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.2 WebRTC 客户端架构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.1 WebRTC 一对一架构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.4 MediaStream 与 MediaStreamTrack 47
5.5 本地视频预览47
5.6 信令状态机 49
5.7 RTCPeerConnection52
5.7.1 创建 RTCPeerConnection 对象 52
5.7.2 RTCPeerConnection 与本地 音视频数据绑定 53
5.7.3 媒体协商 54
5.7.4 ICE 55
5.7.5 SDP 与 Candidate 消息的 交换 57
5.7.6 远端音视频渲染 58
5.7.7 客户端完整例子 59
5.8 小结 82
第 6 章 WebRTC 中的 ICE 实现 83
6.1 Candidate 种类与优先级83
6.2 ICE 策略 85
6.3 P2P 连接 87
6.3.1 完全锥型 NAT 89
6.3.2 IP 限制锥型 NAT90
6.3.3 端口限制锥型 NAT 91
6.3.4 对称型 NAT92
6.3.5 NAT 类型检测 93
6.3.6 如何进行 NAT 穿越 97
6.4 网络中继 101
6.4.1 TURN 协议中转数据 101
6.4.2 WebRTC 使用 TURN 协议 102
6.4.3 STUN/TURN 服务器的 安装与部署103
6.5 小结 105
第 7 章 WebRTC 中的 SDP 106
7.1 SDP 标准规范106
7.2 WebRTC 中 SDP 的整体 结构 108
7.3 媒体信息 110
7.3.1 音频媒体信息 111
7.3.2 视频媒体信息 112
7.3.3 SSRC 与 CNAME 114
7.4 PlanB 与 UnifiedPlan 115
7.5 WebRTC 如何保证数据 安全 117
7.6 RTP 扩展头 119
7.7 服务质量 120
7.8 SDP 详解 122
7.9 ORTC 131
7.10 小结 131
第 8 章 各端的互联互通 132
8.1 WebRTC Native 的核心 132
8.2 Android 端的实现 134
8.2.1 申请权限 134
8.2.2 引入 WebRTC 库 136
8.2.3 构造 PeerConnection- Factory 138
8.2.4 创建音视频源 138
8.2.5 视频采集 139
8.2.6 视频渲染 142
8.2.7 创建 PeerConnection 144
8.2.8 建立信令系统 146
8.3 iOS 端的实现146
8.3.1 申请权限 146
8.3.2 引入 WebRTC 库 147
8.3.3 构造 RTCPeerConnection- Factory 148
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.4 PC 端与 Mac 端的实现 159
8.5 小结 159
第 9 章 网络传输协议 RTP 与 RTCP 160
9.1 如何选择 UDP 与 TCP 160
9.2 RTP 162
9.2.1 RTP 协议头163
9.2.2 RTP 的使用165
9.2.3 RTP 扩展头167
9.2.4 RTP 中的填充数据 170
9.3 RTCP 171
9.3.1 RTCP 报文分类 171
9.3.2 RTCP 协议头 172
9.3.3 WebRTC 的反馈报文 173
9.4 小结 174
第 10 章 WebRTC 拥塞控制 175
10.1 WebRTC 的拥塞控制算法175
10.1.1 Goog-REMB176
10.1.2 Transport-CC 181
10.1.3 基于丢包的拥塞评估算法 原理184
10.1.4 WebRTC 拥塞控制 流程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.1 WebRTC 源码的选择 193
11.2 WebRTC 开发环境的搭建193
11.2.1 配置软硬件环境194
11.2.2 安装依赖工具包195
11.2.3 获取并编译 WebRTC 代码195
11.3 国内 WebRTC 镜像196
11.4 WebRTC 结构 197
11.4.1 WebRTC 主 197
11.4.2 modules 198
11.5 小结 200
第 12 章 分析 WebRTC 源码的必经 之路 201
12.1 信令服务器实现分析 201
12.1.1 信令服务器的组成 202
12.1.2 信令服务器的工作流程 203
12.2 PeerConnection 客户端分析 206
12.2.1 运行 peerconnection_ client 206
12.2.2 peerconnection_client 的组成 207
12.2.3 界面的展示 213
12.2.4 视频的渲染 218
12.2.5 WebRTC 的使用 220
12.2.6 信令的处理 225
12.3 小结 229
第 13 章 WebRTC 源码分析 231
13.1 WebRTC 的数据流 231
13.2 WebRTC 线程模型 234
13.2.1 WebRTC 线程的创建与使用 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



---------------------------8074642 - WebRTC音视频开发:React+Flutter+Go实战---------------------------


前言
第一篇 基本概念
第1章 WebRTC概述2
1.1 WebRTC是什么2
1.2 WebRTC整体架构4
第2章 WebRTC通话原理7
2.1 概述7
2.2 媒体协商8
2.3 网络协商11
2.4 连接建立的流程15
第二篇 基础应用
第3章 HTML5示例工程准备18
3.1 开发环境搭建18
3.1.1 Node安装18
3.1.2 VSCode安装19
3.2 新建示例工程20
3.2.1 package.json配置21
3.2.2 babel支持24
3.2.3 webpack配置24
3.2.4 首页模板文件26
3.2.5 全局样式27
3.2.6 入口文件28
3.2.7 主组件及路由28
第4章 访问设备31
4.1 概述31
4.2 获取用户媒体数据32
4.3 打开摄像头33
4.4 打开麦克风35
4.5 截取视频38
4.6 共享屏幕41
4.7 视频滤镜45
第5章 音视频设置49
5.1 概述49
5.2 分辨率概述50
5.3 分辨率设置51
5.4 音量检测57
5.5 设备枚举60
5.6 设置综合示例67
第6章 媒体流与轨道77
6.1 概述77
6.2 媒体流78
6.3 MediaStreamTrack79
6.4 流与轨道API测试81
6.5 捕获Video媒体流85
6.6 捕获Canvas媒体流88
6.6.1 浏览器兼容性88
6.6.2 创建画布88
6.6.3 Canvas坐标系88
6.6.4 绘制API89
6.6.5 画板示例90
第7章 媒体录制95
7.1 媒体录制原理95
7.1.1 创建录制对象95
7.1.2 常用API97
7.1.3 录制事件97
7.2 录制音频97
7.3 录制视频103
7.3.1 约束条件的区别103
7.3.2 播放器的区别103
7.3.3 miniType的区别103
7.3.4 录制视频示例104
7.4 录制屏幕109
7.5 录制Canvas113
第8章 连接建立118
8.1 概述118
8.2 连接建立的过程119
8.3 连接建立示例122
8.3.1 视频清晰度自适应130
8.3.2 提议/应答信息131
8.3.3 Candidate信息131
8.4 将Video发送至远端132
8.5 流方式同步白板138
第9章 数据通道146
9.1 概述146
9.2 数据通道的概念147
9.3 发送文本消息147
9.4 发送文件154
9.4.1 FileReader155
9.4.2 读取数据156
9.4.3 发送文件示例157
第10章 App示例工程准备167
10.1 Windows环境搭建167
10.2 MacOS环境搭建173
10.3 App方案选取178
10.4 Flutter示例工程178
10.5 权限设置184
10.5.1 iOS平台设置184
10.5.2 Android平台设置184
10.6 项目配置185
10.7 入口程序186
第11章 App音视频技术189
11.1 概述189
11.2 GetUserMedia190
11.3 屏幕共享195
11.4 控制设备200
11.5 连接建立206
11.5.1 媒体约束206
11.5.2 连接约束207
11.5.3 SDP约束207
11.5.4 手机旋转方向207
11.5.5 连接建立示例207
11.6 数据通道215
第三篇 综合案例
第12章 一对一视频通话总体架构224
12.1 通话流程224
12.2 技术框架226
12.3 WebSocket226
12.4 信令设计228
第13章 服务器端实现230
13.1 Go开发环境搭建230
13.1.1 Windows环境搭建230
13.1.2 MacOS环境搭建231
13.2 开发工具232
13.3 后端工程介绍232
13.3.1 TURN服务器运行232
13.3.2 信令服务器233
13.4 依赖库管理234
13.5 工具库235
13.6 项目配置文件237
13.7 入口程序238
13.8 Socket服务240
13.9 P2P信令服务244
13.10 用户和会话信息248
13.11 房间管理及信令处理248
13.11.1 房间管理249
13.11.2 信令处理249
13.11.3 合并逻辑并测试252
第14章 Web端实现258
14.1 登录组件258
14.2 本地视频组件259
14.3 远端视频组件262
14.4 信令实现263
14.5 P2P客户端278
14.6 视频通话测试285
第15章 App端实现287
15.1 登录组件287
15.2 生成Id290
15.3 约束条件291
15.4 请求TurnServer292
15.5 ICE配置293
15.6 封装WebSocket294
15.7 定义状态297
15.8 信令实现298
15.9 P2P客户端312
15.10 整体测试318

推荐

车牌查询
桂ICP备20004708号-3