失效链接处理 |
WebRTC Native开发实战 PDF 下载 下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/11158670262.html
相关截图:
![]() 资料简介: 许建林,网名Piasy,毕业于清华大学计算机系,毕业后创业,参与从零到一打造社交直播 APP YOLO 的全过程。目前就职于 PowerInfo(北京世纪鼎点软件有限公司),从事高稳定低音视频实时传输技术的研发工作,对实时音视频领域有着深入的研究。开源爱好者,GitHub 近两千关注者,开源了数个上千标星的项目。技术分享者,曾在北京 GDG Meetup、DroidCon Beijing 进行技术分享,是WebRTC Native 源码导读系列博客作者。 资料目录: 章 开发环境搭建 // 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.ession 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 0章 纯音/视频 // 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 1章 多人通话 // 178 11.1 概览 // 178 11.1.1 P2P网状结构 // 178 11.1.2 SFU结构 // 179 11.1.3 MCU结构 // 180 11.2 客户端代码实现 // 180 2章 日志和状态统计 // 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 3章 屏幕共享 // 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 4章 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 5章 美颜 // 228 15.1 Android美颜处理器 // 228 15.2 iOS美颜处理器 // 231 6章 伴奏 // 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 7章 本地录制 // 247 17.1 概览 // 247 17.2 添加接口 // 248 17.3 获取数据 // 249 17.4 FFmpeg调用 // 252 17.5 视频关键帧 // 257 17.6 视频方向 // 258 17.7 纯音/视频录制 // 258 8章 项目外使用WebRTC // 260 18.1 概览 // 260 18.2 摘取源码 // 260 18.3 使用整体静态库 // 264 18.3.td::__1 的来源 // 264 18.3.2 修改WebRTC编译配置 // 266 18.3.3 提取头文件 // 267 18.4 使用子模块静态库 // 267 9章 信令 // 269 19.1 AppRTC Server信令协议 // 269 19.1.1 POST加入房间 // 270 19.1.2 GET获取ICE服务器配置 // 271 19.1.3 长连接注册 // 271 19.1.4 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 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 GET用户和流列表 // 284 19.3 P2P网状结构信令协议 // 285 19.3.1 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 |