作者: 许建林
出版社: 清华大学出版社
出版年: 2020-08
ISBN: 9787302558132
~~滚到底部有网盘下载链接~~
内容简介
本书是WebRTC方面的专著,WebRTC是一项实时通信领域革命性的技术,在实时音视频通信领域已经产生了深远的影响。本书涵盖了Native端WebRTC SDK基本场景的使用、基本场景下完整流程的源码导读,还介绍了一些高级的功能和场景,比如多人通话、屏幕共享、H.265、美颜、伴奏、本地录制等,最后还对Server端展开了一些讨论。本书通过细致的代码分析和源码导读,来讲解WebRTC Native的具体实战,分析WebRTC内部主要的数据流程,力图使读者能够通过实际操作快速入门和理解WebRTC Native的开发技巧。
本书主要面向的是所有希望从事WebRTC Native开发的IT从业人员,且要求读者具备一定的Java/Objective-C/C++语言基础。
许建林,网名Piasy,毕业于清华大学计算机系,毕业后创业,参与从零到一打造社交直播APP YOLO的全过程。目前就职于PowerInfo(北京世纪鼎点软件有限公司),从事高稳定低延时音视频实时传输技术的研发工作,对实时音视频领域有着深入的研究。开源爱好者,GitHub近两千关注者,开源了数个上千标星的项目。技术分享者,曾在北京GDG Meetup、DroidCon Beijing进行技术分享,是WebRTC Native源码导读系列博客作者。
本书主要面向的是所有希望从事WebRTC Native开发的IT从业人员,且要求读者具备一定的Java/Objective-C/C++语言基础。
许建林,网名Piasy,毕业于清华大学计算机系,毕业后创业,参与从零到一打造社交直播APP YOLO的全过程。目前就职于PowerInfo(北京世纪鼎点软件有限公司),从事高稳定低延时音视频实时传输技术的研发工作,对实时音视频领域有着深入的研究。开源爱好者,GitHub近两千关注者,开源了数个上千标星的项目。技术分享者,曾在北京GDG Meetup、DroidCon Beijing进行技术分享,是WebRTC Native源码导读系列博客作者。
目录
内容简介
作者简介
本书特色
前言
第1章 开发环境搭建
1.1 WebRTC简介
1.2 iOS/macOS编译环境
1.3 Android/Linux编译环境
1.4 Windows编译环境
1.5 更新WebRTC编译环境
1.6 macOS上的Android编译环境
第2章 运行官方Demo
2.1 官方Demo简介
2.2 部署AppRTC Server
2.3 运行iOS AppRTCMobile
2.4 运行macOS AppRTCMobile
2.5 运行Android AppRTCMobile
2.6 iOS/macOS/Android AppRTCMobile互通测试
2.7 Android C++代码单步调试
2.8 部署PeerConnection Server
2.9 运行Windows PeerConnection Client
2.10 运行Linux PeerConnection Client
第3章 基本流程分析
3.1 拓扑结构
3.2 通话过程
3.3 核心API和Demo代码位置
3.4 SDP初探
第4章 编译工具介绍
4.1 Ninja
4.2 GN
4.3 系统宏定义
4.4 添加源码目录和预编译依赖库
第5章 SDP详解
5.1 Plan B v.s. Unified Plan
5.2 Transceiver
5.3 SDP详解
5.4 操纵SDP
第6章 线程模型
6.1 三大线程的使用
6.2 三大线程的创建
第7章 视频数据流程
7.1 视频数据流程概览
7.2 视频采集
7.3 视频渲染
7.4 视频编解码
7.5 视频数据流程调用栈
第8章 音频数据流程
8.1 音频数据流程概览
8.2 音频采集和播放
8.3 音频设备模块ADM
8.4 音频编解码模块ACM
8.5 音频数据流程调用栈
第9章 DataChannel
9.1 概览
9.2 iOS DataChannel
9.3 Android DataChannel
9.4 RTCQuicTransport
第10章 纯音/视频
10.1 概览
10.2 AudioTrack的禁用与启用
10.3 VideoTrack的禁用与启用
10.4 HijackCapturerObserver
10.5 track状态的通知
10.6 录制相关
第11章 多人通话
11.1 概览
11.2 客户端代码实现
第12章 日志和状态统计
12.1 概览
12.2 iOS集成Mars XLog
12.3 Android集成Mars XLog
12.4 RTCStatsReport
第13章 屏幕共享
13.1 概览
13.2 iOS屏幕共享
13.3 Android屏幕共享
第14章 H.265支持
14.1 概览
14.2 SDP
14.3 编解码
14.4 RTP封包解包
第15章 美颜
15.1 Android美颜处理器
15.2 iOS美颜处理器
第16章 伴奏
16.1 概览
16.2 解码音频数据
16.3 播放非接收的音频数据
16.4 伴奏混音发送
16.5 其他控制和调节功能
第17章 本地录制
17.1 概览
17.2 添加接口
17.3 获取数据
17.4 FFmpeg调用
17.5 视频关键帧
17.6 视频方向
17.7 纯音/视频录制
第18章 项目外使用WebRTC
18.1 概览
18.2 摘取源码
18.3 使用整体静态库
18.4 使用子模块静态库
第19章 信令
19.1 AppRTC Server信令协议
19.2 OWT Server信令协议
19.3 P2P网状结构信令协议
第20章 NAT穿透
20.1 NAT穿透原理
20.2 coturn的基本使用
第21章 OWT Server SFU数据流程
21.1 进程结构和JavaScript代码处理流程
21.2 C++代码处理流程
第22章 OWT Server MCU数据流程
22.1 JavaScript代码处理流程
22.2 C++代码处理流程
后记
作者简介
本书特色
前言
第1章 开发环境搭建
1.1 WebRTC简介
1.2 iOS/macOS编译环境
1.3 Android/Linux编译环境
1.4 Windows编译环境
1.5 更新WebRTC编译环境
1.6 macOS上的Android编译环境
第2章 运行官方Demo
2.1 官方Demo简介
2.2 部署AppRTC Server
2.3 运行iOS AppRTCMobile
2.4 运行macOS AppRTCMobile
2.5 运行Android AppRTCMobile
2.6 iOS/macOS/Android AppRTCMobile互通测试
2.7 Android C++代码单步调试
2.8 部署PeerConnection Server
2.9 运行Windows PeerConnection Client
2.10 运行Linux PeerConnection Client
第3章 基本流程分析
3.1 拓扑结构
3.2 通话过程
3.3 核心API和Demo代码位置
3.4 SDP初探
第4章 编译工具介绍
4.1 Ninja
4.2 GN
4.3 系统宏定义
4.4 添加源码目录和预编译依赖库
第5章 SDP详解
5.1 Plan B v.s. Unified Plan
5.2 Transceiver
5.3 SDP详解
5.4 操纵SDP
第6章 线程模型
6.1 三大线程的使用
6.2 三大线程的创建
第7章 视频数据流程
7.1 视频数据流程概览
7.2 视频采集
7.3 视频渲染
7.4 视频编解码
7.5 视频数据流程调用栈
第8章 音频数据流程
8.1 音频数据流程概览
8.2 音频采集和播放
8.3 音频设备模块ADM
8.4 音频编解码模块ACM
8.5 音频数据流程调用栈
第9章 DataChannel
9.1 概览
9.2 iOS DataChannel
9.3 Android DataChannel
9.4 RTCQuicTransport
第10章 纯音/视频
10.1 概览
10.2 AudioTrack的禁用与启用
10.3 VideoTrack的禁用与启用
10.4 HijackCapturerObserver
10.5 track状态的通知
10.6 录制相关
第11章 多人通话
11.1 概览
11.2 客户端代码实现
第12章 日志和状态统计
12.1 概览
12.2 iOS集成Mars XLog
12.3 Android集成Mars XLog
12.4 RTCStatsReport
第13章 屏幕共享
13.1 概览
13.2 iOS屏幕共享
13.3 Android屏幕共享
第14章 H.265支持
14.1 概览
14.2 SDP
14.3 编解码
14.4 RTP封包解包
第15章 美颜
15.1 Android美颜处理器
15.2 iOS美颜处理器
第16章 伴奏
16.1 概览
16.2 解码音频数据
16.3 播放非接收的音频数据
16.4 伴奏混音发送
16.5 其他控制和调节功能
第17章 本地录制
17.1 概览
17.2 添加接口
17.3 获取数据
17.4 FFmpeg调用
17.5 视频关键帧
17.6 视频方向
17.7 纯音/视频录制
第18章 项目外使用WebRTC
18.1 概览
18.2 摘取源码
18.3 使用整体静态库
18.4 使用子模块静态库
第19章 信令
19.1 AppRTC Server信令协议
19.2 OWT Server信令协议
19.3 P2P网状结构信令协议
第20章 NAT穿透
20.1 NAT穿透原理
20.2 coturn的基本使用
第21章 OWT Server SFU数据流程
21.1 进程结构和JavaScript代码处理流程
21.2 C++代码处理流程
第22章 OWT Server MCU数据流程
22.1 JavaScript代码处理流程
22.2 C++代码处理流程
后记