• WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
  • WebRTCNative开发实战
21年品牌 40万+商家 超1.5亿件商品

WebRTCNative开发实战

实物拍照

13 1.5折 89 九品

仅1件

北京丰台
认证卖家担保交易快速发货售后保障

作者许建林 著

出版社清华大学出版社

出版时间2020-08

版次1

装帧平装

货号39

上书时间2024-10-01

书影阁

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 许建林 著
  • 出版社 清华大学出版社
  • 出版时间 2020-08
  • 版次 1
  • ISBN 9787302558132
  • 定价 89.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 322页
【内容简介】

本书是WebRTC方面的专著,WebRTC是一项实时通信领域革命性的技术,在实时音视频通信领域已经产生了深远的影响。本书涵盖了Native端WebRTC SDK基本场景的使用、基本场景下完整流程的源码导读,还介绍了一些高级的功能和场景,比如多人通话、屏幕共享、H.265、美颜、伴奏、本地录制等,最后还对Server端展开了一些讨论。本书通过细致的代码分析和源码导读,来讲解WebRTC Native的具体实战,分析WebRTC内部主要的数据流程,力图使读者能够通过实际操作快速入门和理解WebRTC Native的开发技巧。

【作者简介】

许建林,网名Piasy,毕业于清华大学计算机系,毕业后创业,参与从零到一打造社交直播 APP YOLO 的全过程。目前就职于 PowerInfo(北京世纪鼎点软件有限公司),从事高稳定低延时音视频实时传输技术的研发工作,对实时音视频领域有着深入的研究。开源爱好者,GitHub 近两千关注者,开源了数个上千标星的项目。技术分享者,曾在北京 GDG Meetup、DroidCon Beijing 进行技术分享,是WebRTC Native 源码导读系列博客作者。

【目录】

目   录

 

第1章  开发环境搭建 1

 

1.1  WebRTC简介 1

 

1.2  iOS/macOS编译环境 2

 

1.3  Android/Linux编译环境 3

 

1.4  Windows编译环境 3

 

1.5  更新WebRTC编译环境 4

 

1.6  macOS上的Android编译环境 4

 

第2章  运行官方Demo 6

 

2.1  官方Demo简介 6

 

2.2  部署AppRTC Server 6

 

2.3  运行iOS AppRTCMobile 7

 

2.4  运行macOS AppRTCMobile 13

 

2.5  运行Android AppRTCMobile 17

 

2.6  iOS/macOS/Android AppRTCMobile互通测试 19

 

2.7  Android C++代码单步调试 20

 

2.8  部署PeerConnection Server 23

 

2.9  运行Windows PeerConnection Client 23

 

2.10  运行Linux PeerConnection Client 25

 

第3章  基本流程分析 26

 

3.1  拓扑结构 26

 

3.2  通话过程 27

 

3.2.1  PeerConnection 28

 

3.2.2  Offer、Answer和SDP 28

 

3.2.3  ICE 28

 

3.2.4  STUN 28

 

3.2.5  TURN 29

 

3.2.6  ICE Candidate 29

 

3.3  核心API和Demo代码位置 30

 

3.3.1  全局初始化 30

 

3.3.2  PeerConnectionFactory 31

 

3.3.3  创建PeerConnection 33

 

3.3.4  创建Source和Track 34

 

3.3.5  创建Offer 37

 

3.3.6  创建Answer 39

 

3.3.7  ICE Candidate回调和设置 41

 

3.3.8  ICE连接状态回调 42

 

3.3.9  核心API回顾 43

 

3.4  SDP初探 44

 

第4章  编译工具介绍 46

 

4.1  Ninja 46

 

4.2  GN 46

 

4.3  系统宏定义 48

 

4.4  添加源码目录和预编译依赖库 50

 

第5章  SDP详解 54

 

5.1  Plan B v.s. Unified Plan 54

 

5.2  Transceiver 54

 

5.3  SDP详解 57

 

5.3.1  session metadata 57

 

5.3.2  video media section 57

 

5.3.3  audio media section 60

 

5.3.4  application media section 61

 

5.4  操纵SDP 62

 


 


 

第6章  线程模型 63

 

6.1  三大线程的使用 63

 

6.1.1  对外接口的线程切换 63

 

6.1.2  内部代码的线程切换 65

 

6.2  三大线程的创建 66

 

6.2.1  iOS/macOS创建PC Factory 68

 

6.2.2  Android创建PC Factory 69

 

6.2.3  Windows/Linux创建PC Factory 70

 

第7章  视频数据流程 72

 

7.1  视频数据流程概览 72

 

7.2  视频采集 73

 

7.2.1  iOS/macOS视频采集 73

 

7.2.2  Android视频采集 79

 

7.2.3  Windows/Linux视频采集 85

 

7.3  视频渲染 87

 

7.3.1  iOS/macOS视频渲染 87

 

7.3.2  Android视频渲染 91

 

7.3.3  Windows/Linux视频渲染 92

 

7.4  视频编解码 92

 

7.4.1  iOS/macOS视频编码 94

 

7.4.2  iOS/macOS视频解码 100

 

7.4.3  Android视频编码 104

 

7.4.4  Android视频解码 113

 

7.4.5  Windows/Linux视频编码 120

 

7.4.6  Windows/Linux视频解码 125

 

7.4.7  编码流控测试 125

 

7.5  视频数据流程调用栈 130

 

第8章  音频数据流程 134

 

8.1  音频数据流程概览 134

 

8.2  音频采集和播放 135

 

8.2.1  iOS音频采集和播放 135

 

8.2.2  Android音频采集和播放 143

 

8.2.3  macOS音频采集和播放 153

 

8.2.4  Windows音频采集和播放 154

 

8.2.5  Linux音频采集和播放 154

 

8.3  音频设备模块ADM 155

 

8.3.1  iOS ADM 155

 

8.3.2  Android ADM 156

 

8.3.3  macOS ADM 156

 

8.3.4  Windows ADM 156

 

8.3.5  Linux ADM 157

 

8.3.6  声音路由 157

 

8.4  音频编解码模块ACM 158

 

8.4.1  音频编码 159

 

8.4.2  音频解码 160

 

8.5  音频数据流程调用栈 162

 

第9章  DataChannel 167

 

9.1  概览 167

 

9.2  iOS DataChannel 167

 

9.2.1  创建DataChannel 167

 

9.2.2  SDP 168

 

9.2.3  发送消息 169

 

9.2.4  接收消息 169

 

9.3  Android DataChannel 170

 

9.3.1  创建DataChannel 170

 

9.3.2  SDP 170

 

9.3.3  发送消息 170

 

9.3.4  接收消息 171

 

9.4  RTCQuicTransport 171

 


 


 

第10章  纯音/视频 172

 

10.1  概览 172

 

10.2  AudioTrack的禁用与启用 173

 

10.3  VideoTrack的禁用与启用 173

 

10.4  HijackCapturerObserver 174

 

10.4.1  iOS的实现 174

 

10.4.2  Android的实现 176

 

10.5  track状态的通知 177

 

10.6  录制相关 177

 

第11章  多人通话 178

 

11.1  概览 178

 

11.1.1  P2P网状结构 178

 

11.1.2  SFU结构 179

 

11.1.3  MCU结构 180

 

11.2  客户端代码实现 180

 

第12章  日志和状态统计 183

 

12.1  概览 183

 

12.2  iOS集成Mars XLog 185

 

12.3  Android集成Mars XLog 187

 

12.4  RTCStatsReport 189

 

12.4.1  AccumulatedValueSplitter 190

 

12.4.2  RtcStats选择函数 193

 

12.4.3  连接状态解析 194

 

12.4.4  视频发送状态解析 199

 

12.4.5  音频发送状态解析 205

 

12.4.6  视频接收状态解析 207

 

12.4.7  音频接收状态解析 209

 

第13章  屏幕共享 211

 

13.1  概览 211

 

13.2  iOS屏幕共享 211

 

13.2.1  CFRPCapturer的实现 212

 

13.2.2  CFRPCapturer的使用 214

 

13.2.3  修改RTCVideoSource 214

 

13.3  Android屏幕共享 215

 

13.3.1  ScreenCapturerAndroid的实现 215

 

13.3.2  ScreenCapturerAndroid的使用 217

 

第14章  H.265 支持 219

 

14.1  概览 220

 

14.2  SDP 220

 

14.3  编解码 222

 

14.3.1  iOS修改编码代码 222

 

14.3.2  iOS修改解码代码 224

 

14.3.3  Android修改编码代码 226

 

14.3.4  Android修改编码代码 227

 

14.4  RTP封包解包 227

 

第15章  美颜 228

 

15.1  Android美颜处理器 228

 

15.2  iOS美颜处理器 231

 

第16章  伴奏 234

 

16.1  概览 234

 

16.2  解码音频数据 235

 

16.2.1  初始化 235

 

16.2.2  音频解码 236

 

16.2.3  重采样 239

 

16.2.4  销毁 240

 

16.3  播放非接收的音频数据 240

 

16.4  伴奏混音发送 243

 

16.5  其他控制和调节功能 246

 

第17章  本地录制 247

 

17.1  概览 247

 

17.2  添加接口 248

 

17.3  获取数据 249

 

17.4  FFmpeg调用 252

 

17.5  视频关键帧 257

 

17.6  视频方向 258

 

17.7  纯音/视频录制 258

 

第18章  项目外使用WebRTC 260

 

18.1  概览 260

 

18.2  摘取源码 260

 

18.3  使用整体静态库 264

 

18.3.1  std::__1 的来源 264

 

18.3.2  修改WebRTC编译配置 266

 

18.3.3  提取头文件 267

 

18.4  使用子模块静态库 267

 

第19章  信令 269

 

19.1  AppRTC Server信令协议 269

 

19.1.1  HTTP POST加入房间 270

 

19.1.2  HTTP GET获取ICE服务器配置 271

 

19.1.3  长连接注册 271

 

19.1.4  HTTP POST发送消息 272

 

19.1.5  长连接发送消息 272

 

19.1.6  离开房间 273

 

19.1.7  同时加入 274

 

19.1.8  Offer/Answer和ICE Candidate顺序 274

 

19.2  OWT Server信令协议 274

 

19.2.1  OWT Server架构 274

 

19.2.2  OWT信令协议 276

 

19.2.3  HTTP POST创建token 276

 

19.2.4  SocketIO登录 278

 

19.2.5  SocketIO发布流 280

 

19.2.6  SocketIO发送Offer和ICE Candidate 280

 

19.2.7  SocketIO接收Answer 281

 

19.2.8  SocketIO订阅流 282

 

19.2.9  SocketIO接收其他用户的通知 282

 

19.2.10  SocketIO退出登录 283

 

19.2.11  Offer和ICE Candidate顺序 283

 

19.2.12  错误重连 284

 

19.2.13  HTTP GET用户和流列表 284

 

19.3  P2P网状结构信令协议 285

 

19.3.1  HTTP POST加入房间 286

 

19.3.2  长连接注册 287

 

19.3.3  WebSocket接收其他用户的通知 287

 

19.3.4  长连接发送Offer/Answer和ICE Candidate 288

 

19.3.5  离开房间 289

 

19.3.6  错误重连 289

 

19.3.7  Offer/Answer和ICE Candidate顺序 290

 

第20章  NAT穿透 291

 

20.1  NAT穿透原理 291

 

20.2  coturn的基本使用 295

 

第21章  OWT Server SFU数据流程 299

 

21.1  进程结构和JavaScript代码处理流程 299

 

21.1.1  进程结构 299

 

21.1.2  Management API 300

 

21.1.3  WebRTC Portal 300

 

21.1.4  Conference Agent 301

 

21.1.5  WebRTC Agent 302

 

21.1.6  WebRTC Agent node间的流扩散 303

 

21.1.7  Cluster Manager 304

 

21.1.8  完整过程总结 306

 

21.2  C++代码处理流程 307

 

21.2.1  WebRTC信令处理 308

 

21.2.2  WebRTC媒体数据处理 309

 

21.2.3  流扩散处理 311

 

第22章  OWT Server MCU数据流程 314

 

22.1  JavaScript代码处理流程 314

 

22.1.1  Conference Agent 314

 

22.1.2  Audio Agent 316

 

22.1.3  Video Agent 316

 

22.1.4  转码处理 317

 

22.2  C++代码处理流程 317

 

22.2.1  AudioMixer 317

 

22.2.2  VideoMixer 318

 

22.2.3  VideoTranscoder 320

 

后记 321

 


点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP