编辑推荐
本书助力WebRTC Native开发者入门,示例丰富、实用性强,剖析内部实现原理。
内容简介
本书的目的是引导想使用WebRTC Native的开发者进行入门学习,通过本书的学习,读者能够掌握WebRTC Native开发的基本流程,掌握WebRTC内部的主要数据流程,掌握对WebRTC进行调试分析、二次开发的能力。本书的特点是示例代码丰富,实用性和系统性较强,适合于 WebRTC Native 入门开发者,此外本书也包含了 WebRTC 内部的主要数据流程,对 WebRTC 的内部实现原理进行了剖析。本书首先会介绍一下 Native 端 WebRTC SDK 基本场景的使用,接着就对基本场景的主要数据流程进行源码导读,之后会讨论一些高级的功能和场景。
章节目录
封面页
书名页
版权页
内容简介
作者简介
本书特色
前言
目录
第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.2.1 PeerConnection
3.2.2 Offer、Answer和SDP
3.2.3 ICE
3.2.4 STUN
3.2.5 TURN
3.2.6 ICE Candidate
3.3 核心API和Demo代码位置
3.3.1 全局初始化
3.3.2 PeerConnectionFactory
3.3.3 创建PeerConnection
3.3.4 创建Source和Track
3.3.5 创建Offer
3.3.6 创建Answer
3.3.7 ICE Candidate回调和设置
3.3.8 ICE连接状态回调
3.3.9 核心API回顾
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.3.1 session metadata
5.3.2 video media section
5.3.3 audio media section
5.3.4 application media section
5.4 操纵SDP
第6章 线程模型
6.1 三大线程的使用
6.1.1 对外接口的线程切换
6.1.2 内部代码的线程切换
6.2 三大线程的创建
6.2.1 iOS/macOS创建PC Factory
6.2.2 Android创建PC Factory
6.2.3 Windows/Linux创建PC Factory
第7章 视频数据流程
7.1 视频数据流程概览
7.2 视频采集
7.2.1 iOS/macOS视频采集
7.2.2 Android视频采集
7.2.3 Windows/Linux视频采集
7.3 视频渲染
7.3.1 iOS/macOS视频渲染
7.3.2 Android视频渲染
7.3.3 Windows/Linux视频渲染
7.4 视频编解码
7.4.1 iOS/macOS视频编码
7.4.2 iOS/macOS视频解码
7.4.3 Android视频编码
7.4.4 Android视频解码
7.4.5 Windows/Linux视频编码
7.4.6 Windows/Linux视频解码
7.4.7 编码流控测试
7.5 视频数据流程调用栈
第8章 音频数据流程
8.1 音频数据流程概览
8.2 音频采集和播放
8.2.1 iOS音频采集和播放
8.2.2 Android音频采集和播放
8.2.3 macOS音频采集和播放
8.2.4 Windows音频采集和播放
8.2.5 Linux音频采集和播放
8.3 音频设备模块ADM
8.3.1 iOS ADM
8.3.2 Android ADM
8.3.3 macOS ADM
8.3.4 Windows ADM
8.3.5 Linux ADM
8.3.6 声音路由
8.4 音频编解码模块ACM
8.4.1 音频编码
8.4.2 音频解码
8.5 音频数据流程调用栈
第9章 DataChannel
9.1 概览
9.2 iOS DataChannel
9.2.1 创建DataChannel
9.2.2 SDP
9.2.3 发送消息
9.2.4 接收消息
9.3 Android DataChannel
9.3.1 创建DataChannel
9.3.2 SDP
9.3.3 发送消息
9.3.4 接收消息
9.4 RTCQuicTransport
第10章 纯音/视频
10.1 概览
10.2 AudioTrack的禁用与启用
10.3 VideoTrack的禁用与启用
10.4 HijackCapturerObschmerver
10.4.1 iOS的实现
10.4.2 Android的实现
10.5 track状态的通知
10.6 录制相关
第11章 多人通话
11.1 概览
11.1.1 P2P网状结构
11.1.2 SFU结构
11.1.3 MCU结构
11.2 客户端代码实现
第12章 日志和状态统计
12.1 概览
12.2 iOS集成Mars XLog
12.3 Android集成Mars XLog
12.4 RTCStatsReport
12.4.1 AccumulatedValueSplitter
12.4.2 RtcStats选择函数
12.4.3 连接状态解析
12.4.4 视频发送状态解析
12.4.5 音频发送状态解析
12.4.6 视频接收状态解析
12.4.7 音频接收状态解析
第13章 屏幕共享
13.1 概览
13.2 iOS屏幕共享
13.2.1 CFRPCapturer的实现
13.2.2 CFRPCapturer的使用
13.2.3 修改RTCVideoSource
13.3 Android屏幕共享
13.3.1 ScreenCapturerAndroid的实现
13.3.2 ScreenCapturerAndroid的使用
第14章 H.265支持
14.1 概览
14.2 SDP
14.3 编解码
14.3.1 iOS修改编码代码
14.3.2 iOS修改解码代码
14.3.3 Android修改编码代码
14.3.4 Android修改编码代码
14.4 RTP封包解包
第15章 美颜
15.1 Android美颜处理器
15.2 iOS美颜处理器
第16章 伴奏
16.1 概览
16.2 解码音频数据
16.2.1 初始化
16.2.2 音频解码
16.2.3 重采样
16.2.4 销毁
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.3.1 std::__1的来源
18.3.2 修改WebRTC编译配置
18.3.3 提取头文件
18.4 使用子模块静态库
第19章 信令
19.1 AppRTC Server信令协议
19.1.1 HTTP POST加入房间
19.1.2 HTTP GET获取ICE服务器配置
19.1.3 长连接注册
19.1.4 HTTP POST发送消息
19.1.5 长连接发送消息
19.1.6 离开房间
19.1.7 同时加入
19.1.8 Offer/Answer和ICE Candidate顺序
19.2 OWT Server信令协议
19.2.1 OWT Server架构
19.2.2 OWT信令协议
19.2.3 HTTP POST创建token
19.2.4 SocketIO登录
19.2.5 SocketIO发布流
19.2.6 SocketIO发送Offer和ICE Candidate
19.2.7 SocketIO接收Answer
19.2.8 SocketIO订阅流
19.2.9 SocketIO接收其他用户的通知
19.2.10 SocketIO退出登录
19.2.11 Offer和ICE Candidate顺序
19.2.12 错误重连
19.2.13 HTTP GET用户和流列表
19.3 P2P网状结构信令协议
19.3.1 HTTP POST加入房间
19.3.2 长连接注册
19.3.3 WebSocket接收其他用户的通知
19.3.4 长连接发送Offer/Answer和ICE Candidate
19.3.5 离开房间
19.3.6 错误重连
19.3.7 Offer/Answer和ICE Candidate顺序
第20章 NAT穿透
20.1 NAT穿透原理
20.2 coturn的基本使用
第21章 OWT Server SFU数据流程
21.1 进程结构和JavaScript代码处理流程
21.1.1 进程结构
21.1.2 Management API
21.1.3 WebRTC Portal
21.1.4 Conference Agent
21.1.5 WebRTC Agent
21.1.6 WebRTC Agent node间的流扩散
21.1.7 Cluster Manager
21.1.8 完整过程总结
21.2 C++代码处理流程
21.2.1 WebRTC信令处理
21.2.2 WebRTC媒体数据处理
21.2.3 流扩散处理
第22章 OWT Server MCU数据流程
22.1 JavaScript代码处理流程
22.1.1 Conference Agent
22.1.2 Audio Agent
22.1.3 Video Agent
22.1.4 转码处理
22.2 C++代码处理流程
22.2.1 AudioMixer
22.2.2 VideoMixer
22.2.3 VideoTranscoder
后记
WebRTCNative开发实战是2020年由清华大学出版社出版,作者许建林。
得书感谢您对《WebRTCNative开发实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。