万本电子书0元读

万本电子书0元读

顶部广告

WebRTC Native 开发实战电子书

近年来,WebRTC技术的使用越来越广泛,引起了众多发者以及各大公司的关注。目前市面上关于WebRTC的书籍大多都是关注Web端的,对Native端(Android 、iOS、macOS、Windows、Linux)的涉猎非常少。此外,还没有任何图书对WebRTC内部的技术实现行分析,本书试图弥补这一空白。 本书是编者在WebRTC学习、WebRTC Native实际使用过程中的心得体会和系统总结,内容涵盖了Native端WebRTC SDK基本场景的使用、基本场景下完整流程的源码导读,还有一些高级的功能和

售       价:¥

纸质售价:¥67.20购买纸书

105人正在读 | 1人评论 6.2

作       者:许建林

出  版  社:清华大学出版社

出版时间:2020-08-01

字       数:24.1万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书是WebRTC方面的专著,WebRTC是一项实时通信领域革命性的技术,在实时音视频通信领域已经产生了深远的影响。本书涵盖了Native端WebRTC SDK基本场景的使用、基本场景下完整流程的源码导读,还介绍了一些高级的功能和场景,比如多人通话、屏幕共享、H.265、美颜、伴奏、本地录制等,*后还对Server端展了一些讨论。本书通过细致的代码分析和源码导读,来讲解WebRTC Native的具体实战,分析WebRTC内部主要的数据流程,力图使读者能够通过实际操作快速门和理解WebRTC Native的发技巧。 本书主要面向的是所有希望从事WebRTC Native发的IT从业人员,且要求读者具备一定的Java/Objective-C/C 语言基础。<br/>【推荐语】<br/>近年来,WebRTC技术的使用越来越广泛,引起了众多发者以及各大公司的关注。目前市面上关于WebRTC的书籍大多都是关注Web端的,对Native端(Android 、iOS、macOS、Windows、Linux)的涉猎非常少。此外,还没有任何图书对WebRTC内部的技术实现行分析,本书试图弥补这一空白。 本书是编者在WebRTC学习、WebRTC Native实际使用过程中的心得体会和系统总结,内容涵盖了Native端WebRTC SDK基本场景的使用、基本场景下完整流程的源码导读,还有一些高级的功能和 场景,比如多人通话、屏幕共享、H.265、美颜、伴奏、本地录制等,*后还对Server端展了一些讨论。 书中利用大量细致的代码分析和源码导读来讲解WebRTC Native的具体实战,分析WebRTC内部主要的数据流程,力图使读者能够通过实际操作快速门和理解WebRTC Native的发技巧。<br/>【作者】<br/>许建林,网名Piasy,毕业于清华大学计算机系,毕业后创业,参与从零到一造社交直播 APP YOLO 的全过程。目前就职于 PowerInfo(北京世纪鼎软件有限公司),从事高稳定低延时音视频实时传输技术的研发工作,对实时音视频领域有着深的研究。源爱好者,GitHub 近两千关注者,源了数个上千标星的项目。技术分享者,曾在北京 GDG Meetup、DroidCon Beijing 行技术分享,是WebRTC Native 源码导读系列博客作者。<br/>
目录展开

封面页

书名页

版权页

内容简介

作者简介

本书特色

前言

目录

第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 HijackCapturerObserver

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

后记

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部