RTC程序设计:实时音视频权威指南 版权信息
- ISBN:9787121472220
- 条形码:9787121472220 ; 978-7-121-47222-0
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>>
RTC程序设计:实时音视频权威指南 本书特色
在图像识别和短视频大流行的今天 作者将自己多年的RTC实战经验 总结成这部非常接地气的著作 揭开实时音视频系统的神秘面纱 既有相关背景知识、理论方法 也有可实践的具体编程方法 结合大量工程实现背后的思考 帮助读者抓住业务问题核心 提供大量可信度非常高的信息源 配合每章*后的总结与自测练习题 读者自学起来将更加得心应手 全面了解实时音视频系统推荐 作者有15年一线大厂相关工作经验 理论讲解深入浅出,实践案例生动易懂 本书是难得的可读性高又实用的优秀技术图书 作者说: 此书又名《我的前半生》。 拥有它,相当于拥有了十余年行业实战经验, 品味了百余本技术书籍精华, 纵览了千余年人类科技简史。 只需一顿饭钱,即可快递到家。 书香恒久远,珍品永流传。"
"这是一本关于多媒体技术的书。从内容组织来看,对于每个知识点,本书基本上都是先介绍背景,再介绍基本原理,然后介绍编程方法。对于编程部分,考虑到编程环境的差异,涵盖Windows、macOS/iOS和Linux多个平台。这样的写法,既有理论高度,又比较方便读者亲自实践。从知识更替的角度来看,戴维的书以RTC为视角,对多媒体编程技术做了一次比较系统的更新。在图像识别和短视频大流行的今天,这是很有必要的。 ——张银奎 在生活节奏越来越快的今天,人们对音视频通信的实时性要求越来越高。本书结合当今软硬件发展趋势,系统地从实时音视频的产生、渲染、传输到用户侧的应用、评价进行了全面剖析,理论讲解深入浅出,实践案例生动易懂,可以作为初学者及准备从事该领域工作的专业人员的参考图书。 ——复旦大学教授、博士生导师 陈涛 本书将为您揭开实时通信系统的神秘面纱,帮助您了解其必要性和掌握其实现方式,助您在RTC领域取得成功。 ——看雪学苑创始人 段钢 作者将自己多年的RTC实战经验总结成这部非常接地气的著作,不但对实时音视频的基础原理进行了清晰的讲解,而且与实际的工程实现相结合,帮助读者获得实用的RTC开发能力。同时,本书给出了进行功能扩展和性能优化的指导方向,方便读者继续进行深入研究。本书非常适合开发者构建自己的实时通信能力。 ——字节跳动实时音视频技术负责人 宋慎义 本书的可读性非常高,通过追溯人类历史,从更大的时间尺度上讲述了RTC技术要解决的核心问题是什么,从而更容易理解RTC技术栈的设计初衷。本书也体现了作者的专业度,书中包含大量工程实现背后的思考,帮助读者抓住业务问题核心。本书还提供了大量可信度非常高的信息源,配合每个章节*后的总结与自测练习题,读者自学起来将更加得心应手。 ——LiveVideoStack联合创始人 包研
RTC程序设计:实时音视频权威指南 内容简介
本书系统地介绍了实时音视频系统的基础概念、工具、编程方法。 全书分为10章,第1章介绍信息与文字编码的基础知识,以及跨平台网络编程的基本方法。第2、3章介绍视频的采集与渲染技术。第4、5章介绍音频的采集与渲染技术。第6章介绍编解码相关的压缩技术。第7章介绍信令与媒体流的建连过程。第8章介绍网络传输过程中的优化技术。第9章介绍实时音视频的应用与可扩展架构。第10章介绍音视频系统核心指标及其计算方法。每章既有对相关背景知识的介绍、对理论方法的说明,也有可实践的具体编程方法,章节后还附有相关的参考资料和练习题,可方便读者进一步学习与复习。 本书适合计算机、通信相关专业的在校大学生,以及希望全面了解实时音视频系统的技术人员阅读。
RTC程序设计:实时音视频权威指南 目录
第 1 章 信息与传输 1
1.1 背景介绍 .......................... 1
1.1.1 电报与无线电 ........... 2
1.1.2 计算机与互联网......... 5
1.1.3 主流平台简介 ........... 8
1.1.4 跨平台开发 .............. 11
1.2 二进制世界 ....................... 17
1.2.1 一切皆比特 .............. 17
1.2.2 字节管理类 .............. 21
1.2.3 BufferViewer ............. 23
1.3 文本表示 .......................... 27
1.3.1 ASCII 到 GBK ........... 27
1.3.2 Unicode 与 UTF-8 ....... 31
1.3.3 TextViewer ............... 34
1.4 网络编程 .......................... 36
1.4.1 网络协议 ................. 36
1.4.2 Socket 与线程模型 ...... 40
1.4.3 HelloRTC 服务器........ 45
1.4.4 HelloRTC 客户端........ 49
第 2 章 视频帧与采集 57
2.1 像素与图像 ....................... 57
2.1.1 视觉物理 ................. 57
2.1.2 像素与颜色空间......... 59
2.1.3 位图与视频帧 ........... 62
2.2 视频采集设备 .................... 69
2.2.1 采集设备枚举 ........... 69
2.2.2 图像采集参数 ........... 74
2.2.3 设备的热插拔通知 ...... 80
2.3 平台采集接口 .................... 84
2.3.1 Windows 视频采集 ...... 84
2.3.2 macOS/iOS 视频采集 ... 88
2.3.3 Android 视频采集 ....... 93
2.3.4 屏幕流与外部源......... 96
2.4 编码前处理 ....................... 102
2.4.1 时间戳与计时 ........... 102
2.4.2 旋转角与朝向 ........... 106
2.4.3 视频前处理 .............. 111
2.4.4 管理视频帧 .............. 118
第 3 章 视频渲染 123
3.1 视频渲染基础 .................... 123
3.1.1 渲染设备 ................. 123
3.1.2 渲染技术 ................. 127
3.1.3 渲染流水线 .............. 130
3.2 平台渲染接口 .................... 134
3.2.1 Windows 渲染 ........... 134
3.2.2 macOS/iOS 渲染......... 135
3.2.3 Android 渲染............. 136
3.2.4 Linux 渲染 ............... 137
3.3 跨平台渲染 ....................... 139
3.3.1 OpenGL 编程 ............ 139
3.3.2 着色器编程 .............. 141
3.4 数字图像与视频.................. 146
3.4.1 视频格式简介 ........... 147
3.4.2 AVI 文件格式............ 148
第 4 章 音频采集 151
4.1 声音与音频帧 .................... 151
4.1.1 声音的物理属性......... 151
4.1.2 数字化音频 .............. 154
4.1.3 WAV 文件与播放........ 156
4.2 音频采集设备 .................... 160
4.2.1 采集设备枚举 ........... 160
4.2.2 音量与静音 .............. 166
4.2.3 设备变更通知 ........... 171
4.2.4 音频路由选择 ........... 174
4.3 平台采集接口 .................... 177
4.3.1 Windows 音频数据
采集....................... 177
4.3.2 macOS/iOS 音频数据
采集....................... 183
4.3.3 Android 音频数据采集.. 185
4.4 音频预处理 ....................... 187
4.4.1 回声消除 AEC........... 187
4.4.2 自动增益控制 AGC ..... 192
4.4.3 主动噪声抑制 ANS ..... 194
4.4.4 语音活动检测 VAD ..... 196
第 5 章 音频渲染 199
5.1 音频渲染基础 .................... 199
5.1.1 数字音频简介 ........... 199
5.1.2 音频渲染设备 ........... 202
5.1.3 音画同步 ................. 204
5.2 平台渲染接口 .................... 206
5.2.1 Windows 音频渲染 ...... 206
5.2.2 macOS 音频渲染 ........ 211
5.2.3 iOS 音频渲染 ............ 212
5.2.4 Android 音频渲染 ....... 213
5.3 高级音频渲染 .................... 215
5.3.1 混音与均衡 .............. 215
5.3.2 重采样.................... 219
5.3.3 空间音频 ................. 220
5.3.4 音效技术 ................. 221
第 6 章 编解码压缩技术 225
6.1 文本压缩 .......................... 225
6.1.1 文本压缩简介 ........... 225
6.1.2 霍夫曼编码 .............. 226
6.1.3 Deflate 编解码 ........... 227
6.2 图像压缩 .......................... 230
6.2.1 图像压缩简介 ........... 230
6.2.2 JPEG 文件格式 .......... 230
6.2.3 JPEG 解码................ 231
6.3 视频编解码 ....................... 233
6.3.1 视频编解码器 ........... 233
6.3.2 MP4 文件格式 ........... 239
6.3.3 比特率调整算法......... 240
6.4 音频编解码 ....................... 242
6.4.1 音频编解码器 ........... 242
6.4.2 MP3 文件格式 ........... 244
6.4.3 Opus 编解码 ............. 245
第 7 章 信令与媒体协商 249
7.1 信令技术 .......................... 249
7.1.1 信令通道 ................. 250
7.1.2 WebRTC 基础概念 ...... 253
7.1.3 RTC 信令设计 ........... 256
7.1.4 配置与连接点获取 ...... 257
7.2 媒体描述 .......................... 259
7.2.1 SDP 格式................. 259
7.2.2 SDP Offer ................ 261
7.2.3 SDP Answer.............. 263
7.3 媒体建连 .......................... 264
7.3.1 STUN ..................... 264
7.3.2 TURN..................... 266
7.3.3 ICE........................ 267
7.3.4 DTLS ..................... 268
7.4 发布订阅 .......................... 272
7.4.1 RTP ....................... 272
7.4.2 RTCP ..................... 274
7.4.3 SCTP ..................... 275
第 8 章 传输控制优化 277
8.1 拥塞控制 .......................... 277
8.1.1 带宽探测 ................. 277
8.1.2 GCC 算法 ................ 278
8.1.3 BBR 算法 ................ 278
8.2 弱网降级 .......................... 281
8.2.1 弱网识别 ................. 281
8.2.2 分级策略 ................. 282
8.2.3 性能降级 ................. 283
8.3 抖动缓存与平滑发送 ............ 284
8.3.1 NetEQ .................... 285
8.3.2 Pacer ...................... 286
8.4 错误恢复 .......................... 287
8.4.1 超时重传 ................. 287
8.4.2 前向纠错 ................. 288
第 9 章 可扩展架构 289
9.1 应用概览 .......................... 289
9.1.1 实时通话 ................. 289
9.1.2 会议与教育 .............. 291
9.1.3 游戏语音与虚拟现实 ... 292
9.2 流水线............................. 293
9.2.1 Node ...................... 293
9.2.2 典型流水线 .............. 295
9.3 服务端架构 ....................... 297
9.3.1 媒体服务器 .............. 297
9.3.2 高可用网络 .............. 298
9.3.3 全球化部署 .............. 299
9.4 网络设备 .......................... 301
第 10 章 评价指标 305
10.1 总体指标 .......................... 305
10.1.1 成功类指标 .............. 305
10.1.2 延迟类指标 .............. 308
10.1.3 卡顿类指标 .............. 313
10.1.4 指标拆解与归因......... 315
10.2 视频质量评估 .................... 318
10.2.1 客观评测 ................. 318
10.2.2 主观评测 ................. 319
10.3 音频质量评估 .................... 321
10.3.1 客观评测 ................. 321
10.3.2 主观评测 ................. 322
10.4 网络质量评估 .................... 323
10.4.1 弱网测试标准 ........... 323
10.4.2 弱网测试工具 ........... 324
10.5 性能与稳定性 .................... 325
10.5.1 性能指标 ................. 325
10.5.2 稳定性指标 .............. 327
附录 A 习题答案 329
附录 B COM 编程基础 331
附录 C 构建工具 CMake 333
附录 D 调试技巧 339
附录 E 编程环境 343
附录 F JNI 基础 345
附录 G RTC 术语 355
附录 H WTL 简介 359
附录 I 索引 361
展开全部
RTC程序设计:实时音视频权威指南 作者简介
戴维,毕业于上海交通大学,计算机应用技术研究生。曾在腾讯工作十余年,现就职于字节跳动实时音视频,负责火山引擎 RTC 的技术架构与质量。擅长跨平台编程技术。爱好读书,登山,追剧。