作品简介

本书是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源码导读系列博客作者。

作品目录

  • 内容简介
  • 作者简介
  • 本书特色
  • 前言
  • 第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++代码处理流程
  • 后记
展开全部