展开全部

主编推荐语

本书助力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
  • 后记
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

清华大学出版社

清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。