中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網(wǎng) 請 | 注冊

包郵 WebRTC Native 開發(fā)實(shí)戰(zhàn)

作者:許建林
出版社:清華大學(xué)出版社出版時(shí)間:2020-08-01
開本: 其他 頁數(shù): 322
中 圖 價(jià):¥44.6(5.0折) 定價(jià)  ¥89.0 登錄后可看到會(huì)員價(jià)
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

WebRTC Native 開發(fā)實(shí)戰(zhàn) 版權(quán)信息

WebRTC Native 開發(fā)實(shí)戰(zhàn) 本書特色

近年來,WebRTC技術(shù)的使用越來越廣泛,引起了眾多開發(fā)者以及各大公司的關(guān)注。目前市面上關(guān)于WebRTC的書籍大多都是關(guān)注Web端的,對Native端(Android 、iOS、macOS、Windows、Linux)的涉獵非常少。此外,還沒有任何圖書對WebRTC內(nèi)部的技術(shù)實(shí)現(xiàn)進(jìn)行分析,本書試圖彌補(bǔ)這一空白。 本書是編者在WebRTC學(xué)習(xí)、WebRTC Native實(shí)際使用過程中的心得體會(huì)和系統(tǒng)總結(jié),內(nèi)容涵蓋了Native端WebRTC SDK基本場景的使用、基本場景下完整流程的源碼導(dǎo)讀,還有一些高級的功能和 場景,比如多人通話、屏幕共享、H.265、美顏、伴奏、本地錄制等,*后還對Server端展開了一些討論。 書中利用大量細(xì)致的代碼分析和源碼導(dǎo)讀來講解WebRTC Native的具體實(shí)戰(zhàn),分析WebRTC內(nèi)部主要的數(shù)據(jù)流程,力圖使讀者能夠通過實(shí)際操作快速入門和理解WebRTC Native的開發(fā)技巧。

WebRTC Native 開發(fā)實(shí)戰(zhàn) 內(nèi)容簡介

本書是WebRTC方面的專著,WebRTC是一項(xiàng)實(shí)時(shí)通信領(lǐng)域革命性的技術(shù),在實(shí)時(shí)音視頻通信領(lǐng)域已經(jīng)產(chǎn)生了深遠(yuǎn)的影響。本書涵蓋了Native端WebRTC SDK基本場景的使用、基本場景下完整流程的源碼導(dǎo)讀,還介紹了一些不錯(cuò)的功能和場景,比如多人通話、屏幕共享、H.265、美顏、伴奏、本地錄制等,很后還對Server端展開了一些討論。本書通過細(xì)致的代碼分析和源碼導(dǎo)讀,來講解WebRTC Native的具體實(shí)戰(zhàn),分析WebRTC內(nèi)部主要的數(shù)據(jù)流程,力圖使讀者能夠通過實(shí)際操作快速入門和理解WebRTC Native的開發(fā)技巧。 本書主要面向的是所有希望從事WebRTC Native開發(fā)的IT從業(yè)人員,且要求讀者具備一定的Java/Objective-C/C++語言基礎(chǔ)。

WebRTC Native 開發(fā)實(shí)戰(zhàn) 目錄

目 錄

第1章 開發(fā)環(huán)境搭建 1

1.1 WebRTC簡介 1

1.2 iOS/macOS編譯環(huán)境 2

1.3 Android/Linux編譯環(huán)境 3

1.4 Windows編譯環(huán)境 3

1.5 更新WebRTC編譯環(huán)境 4

1.6 macOS上的Android編譯環(huán)境 4

第2章 運(yùn)行官方Demo 6

2.1 官方Demo簡介 6

2.2 部署AppRTC Server 6

2.3 運(yùn)行iOS AppRTCMobile 7

2.4 運(yùn)行macOS AppRTCMobile 13

2.5 運(yùn)行Android AppRTCMobile 17

2.6 iOS/macOS/Android AppRTCMobile互通測試 19

2.7 Android C++代碼單步調(diào)試 20

2.8 部署PeerConnection Server 23

2.9 運(yùn)行Windows PeerConnection Client 23

2.10 運(yùn)行Linux PeerConnection Client 25

第3章 基本流程分析 26

3.1 拓?fù)浣Y(jié)構(gòu) 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 創(chuàng)建PeerConnection 33

3.3.4 創(chuàng)建Source和Track 34

3.3.5 創(chuàng)建Offer 37

3.3.6 創(chuàng)建Answer 39

3.3.7 ICE Candidate回調(diào)和設(shè)置 41

3.3.8 ICE連接狀態(tài)回調(diào) 42

3.3.9 核心API回顧 43

3.4 SDP初探 44

第4章 編譯工具介紹 46

4.1 Ninja 46

4.2 GN 46

4.3 系統(tǒng)宏定義 48

4.4 添加源碼目錄和預(yù)編譯依賴庫 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 內(nèi)部代碼的線程切換 65

6.2 三大線程的創(chuàng)建 66

6.2.1 iOS/macOS創(chuàng)建PC Factory 68

6.2.2 Android創(chuàng)建PC Factory 69

6.2.3 Windows/Linux創(chuàng)建PC Factory 70

第7章 視頻數(shù)據(jù)流程 72

7.1 視頻數(shù)據(jù)流程概覽 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 視頻數(shù)據(jù)流程調(diào)用棧 130

第8章 音頻數(shù)據(jù)流程 134

8.1 音頻數(shù)據(jù)流程概覽 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 音頻設(shè)備模塊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 音頻數(shù)據(jù)流程調(diào)用棧 162

第9章 DataChannel 167

9.1 概覽 167

9.2 iOS DataChannel 167

9.2.1 創(chuàng)建DataChannel 167

9.2.2 SDP 168

9.2.3 發(fā)送消息 169

9.2.4 接收消息 169

9.3 Android DataChannel 170

9.3.1 創(chuàng)建DataChannel 170

9.3.2 SDP 170

9.3.3 發(fā)送消息 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的實(shí)現(xiàn) 174

10.4.2 Android的實(shí)現(xiàn) 176

10.5 track狀態(tài)的通知 177

10.6 錄制相關(guān) 177

第11章 多人通話 178

11.1 概覽 178

11.1.1 P2P網(wǎng)狀結(jié)構(gòu) 178

11.1.2 SFU結(jié)構(gòu) 179

11.1.3 MCU結(jié)構(gòu) 180

11.2 客戶端代碼實(shí)現(xiàn) 180

第12章 日志和狀態(tài)統(tǒng)計(jì) 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選擇函數(shù) 193

12.4.3 連接狀態(tài)解析 194

12.4.4 視頻發(fā)送狀態(tài)解析 199

12.4.5 音頻發(fā)送狀態(tài)解析 205

12.4.6 視頻接收狀態(tài)解析 207

12.4.7 音頻接收狀態(tài)解析 209

第13章 屏幕共享 211

13.1 概覽 211

13.2 iOS屏幕共享 211

13.2.1 CFRPCapturer的實(shí)現(xiàn) 212

13.2.2 CFRPCapturer的使用 214

13.2.3 修改RTCVideoSource 214

13.3 Android屏幕共享 215

13.3.1 ScreenCapturerAndroid的實(shí)現(xiàn) 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 解碼音頻數(shù)據(jù) 235

16.2.1 初始化 235

16.2.2 音頻解碼 236

16.2.3 重采樣 239

16.2.4 銷毀 240

16.3 播放非接收的音頻數(shù)據(jù) 240

16.4 伴奏混音發(fā)送 243

16.5 其他控制和調(diào)節(jié)功能 246

第17章 本地錄制 247

17.1 概覽 247

17.2 添加接口 248

17.3 獲取數(shù)據(jù) 249

17.4 FFmpeg調(diào)用 252

17.5 視頻關(guān)鍵幀 257

17.6 視頻方向 258

17.7 純音/視頻錄制 258

第18章 項(xiàng)目外使用WebRTC 260

18.1 概覽 260

18.2 摘取源碼 260

18.3 使用整體靜態(tài)庫 264

18.3.1 std::__1 的來源 264

18.3.2 修改WebRTC編譯配置 266

18.3.3 提取頭文件 267

18.4 使用子模塊靜態(tài)庫 267

第19章 信令 269

19.1 AppRTC Server信令協(xié)議 269

19.1.1 HTTP POST加入房間 270

19.1.2 HTTP GET獲取ICE服務(wù)器配置 271

19.1.3 長連接注冊 271

19.1.4 HTTP POST發(fā)送消息 272

19.1.5 長連接發(fā)送消息 272

19.1.6 離開房間 273

19.1.7 同時(shí)加入 274

19.1.8 Offer/Answer和ICE Candidate順序 274

19.2 OWT Server信令協(xié)議 274

19.2.1 OWT Server架構(gòu) 274

19.2.2 OWT信令協(xié)議 276

19.2.3 HTTP POST創(chuàng)建token 276

19.2.4 SocketIO登錄 278

19.2.5 SocketIO發(fā)布流 280

19.2.6 SocketIO發(fā)送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 錯(cuò)誤重連 284

19.2.13 HTTP GET用戶和流列表 284

19.3 P2P網(wǎng)狀結(jié)構(gòu)信令協(xié)議 285

19.3.1 HTTP POST加入房間 286

19.3.2 長連接注冊 287

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

19.3.4 長連接發(fā)送Offer/Answer和ICE Candidate 288

19.3.5 離開房間 289

19.3.6 錯(cuò)誤重連 289

19.3.7 Offer/Answer和ICE Candidate順序 290

第20章 NAT穿透 291

20.1 NAT穿透原理 291

20.2 coturn的基本使用 295

第21章 OWT Server SFU數(shù)據(jù)流程 299

21.1 進(jìn)程結(jié)構(gòu)和JavaScript代碼處理流程 299

21.1.1 進(jìn)程結(jié)構(gòu) 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間的流擴(kuò)散 303

21.1.7 Cluster Manager 304

21.1.8 完整過程總結(jié) 306

21.2 C++代碼處理流程 307

21.2.1 WebRTC信令處理 308

21.2.2 WebRTC媒體數(shù)據(jù)處理 309

21.2.3 流擴(kuò)散處理 311

第22章 OWT Server MCU數(shù)據(jù)流程 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 轉(zhuǎn)碼處理 317

22.2 C++代碼處理流程 317

22.2.1 AudioMixer 317

22.2.2 VideoMixer 318

22.2.3 VideoTranscoder 320

后記 321


展開全部

WebRTC Native 開發(fā)實(shí)戰(zhàn) 作者簡介

許建林,網(wǎng)名Piasy,畢業(yè)于清華大學(xué)計(jì)算機(jī)系,畢業(yè)后創(chuàng)業(yè),參與從零到一打造社交直播 APP YOLO 的全過程。目前就職于 PowerInfo(北京世紀(jì)鼎點(diǎn)軟件有限公司),從事高穩(wěn)定低延時(shí)音視頻實(shí)時(shí)傳輸技術(shù)的研發(fā)工作,對實(shí)時(shí)音視頻領(lǐng)域有著深入的研究。開源愛好者,GitHub 近兩千關(guān)注者,開源了數(shù)個(gè)上千標(biāo)星的項(xiàng)目。技術(shù)分享者,曾在北京 GDG Meetup、DroidCon Beijing 進(jìn)行技術(shù)分享,是WebRTC Native 源碼導(dǎo)讀系列博客作者。

商品評論(0條)
暫無評論……
書友推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 今日热点_实时热点_奇闻异事_趣闻趣事_灵异事件 - 奇闻事件 | 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 韦伯电梯有限公司 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 房屋质量检测-厂房抗震鉴定-玻璃幕墙检测-房屋安全鉴定机构 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口| 桌上式超净工作台-水平送风超净工作台-上海康路仪器设备有限公司 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 成都中天自动化控制技术有限公司 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 纯化水设备-EDI-制药-实验室-二级反渗透-高纯水|超纯水设备 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 |