-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

WebRTC Native 開發實戰

( 簡體 字)
作者:許建林類別:1. -> 程式設計 -> 綜合
譯者:
出版社:清華大學出版社WebRTC Native 開發實戰 3dWoo書號: 53160
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:8/1/2020
頁數:322
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302558132
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

提到WebRTC,大家首先想到的可能是Web開發,雖然WebRTC首先發力于Web端,但WebRTC在Native端的應用場景也不容小覷,畢竟Native App的效率依然遠超H5。
目前市面上關于WebRTC的書籍大多都是關注Web端的,對Native端(Android、iOS、macOS、Windows、Linux)的涉獵非常少,目前只有WebRTC Blueprints一書最后講了一下Android和iOS平臺的編譯、運行,但這本書已經是2014年的書了。此外,還沒有任何圖書對WebRTC內部的技術實現進行分析。
本書的目的是引導想使用WebRTC Native的開發者進行入門學習,讓讀者通過本書的學習能夠掌握WebRTC Native開發的基本流程,掌握WebRTC內部的主要數據流程,掌握對WebRTC進行調試分析、二次開發的能力。
本書的特點是示例代碼豐富,實用性和系統性較強,適合WebRTC Native入門開發者閱讀。此外,本書還包含WebRTC內部的主要數據流程,會對WebRTC的內部實現原理進行剖析。
本書首先會介紹Native端WebRTC SDK基本場景的使用,接著對基本場景的主要數據流程進行源碼導讀,之后會討論一些高級的功能和場景,最后對Server端展開討論。
筆者使用的真機開發環境為macOS 10.15.3(19D76)、Xcode 11.3.1(11C504)、Android Studio 3.5.3,虛擬機環境為Parallels Desktop Windows 10和Ubuntu 18.04.3。
本書所涉及的WebRTC示例代碼以及源碼分析內容都是基于WebRTC的#30432提交,即通過提交。OWT Server的代碼都是基于4.3.x分支的。
本書所有源碼開源在 GitHub 上,讀者也可以掃描下方的二維碼獲取:

如果你在下載過程中遇到問題,可發送郵件獲得幫助,郵件標題為“WebRTC Native開發實戰”。
另外,歡迎讀者加入本書專屬社群:Hack WebRTC星球。對本書的任何疑問或者想法,以及WebRTC Native開發相關的話題,都可以在星球里提問、討論

許建林
2020年5月
內容簡介:

本書是WebRTC方面的專著,WebRTC是一項實時通信領域革命性的技術,在實時音視頻通信領域已經產生了深遠的影響。本書涵蓋了Native端WebRTC SDK基本場景的使用、基本場景下完整流程的源碼導讀,還介紹了一些高級的功能和場景,比如多人通話、屏幕共享、H.265、美顏、伴奏、本地錄制等,最后還對Server端展開了一些討論。本書通過細致的代碼分析和源碼導讀,來講解WebRTC Native的具體實戰,分析WebRTC內部主要的數據流程,力圖使讀者能夠通過實際操作快速入門和理解WebRTC Native的開發技巧。
本書主要面向的是所有希望從事WebRTC Native開發的IT從業人員,且要求讀者具備一定的Java/Objective-C/C++語言基礎。
目錄:

第1章開發環境搭建 1
1.1WebRTC簡介 1
1.2iOS/macOS編譯環境 2
1.3Android/Linux編譯環境 3
1.4Windows編譯環境 3
1.5更新WebRTC編譯環境 4
1.6macOS上的Android編譯環境 4
第2章運行官方Demo 6
2.1官方Demo簡介 6
2.2部署AppRTCServer 6
2.3運行iOSAppRTCMobile 7
2.4運行macOSAppRTCMobile 13
2.5運行AndroidAppRTCMobile 17
2.6iOS/macOS/AndroidAppRTCMobile互通測試 19
2.7AndroidC++代碼單步調試 20
2.8部署PeerConnectionServer 23
2.9運行WindowsPeerConnectionClient 23
2.10運行LinuxPeerConnectionClient 25
第3章基本流程分析 26
3.1拓撲結構 26
3.2通話過程 27
3.2.1PeerConnection 28
3.2.2Offer、Answer和SDP 28
3.2.3ICE 28
3.2.4STUN 28
3.2.5TURN 29
3.2.6ICECandidate 29
3.3核心API和Demo代碼位置 30
3.3.1全局初始化 30
3.3.2PeerConnectionFactory 31
3.3.3創建PeerConnection 33
3.3.4創建Source和Track 34
3.3.5創建Offer 37
3.3.6創建Answer 39
3.3.7ICECandidate回調和設置 41
3.3.8ICE連接狀態回調 42
3.3.9核心API回顧 43
3.4SDP初探 44
第4章編譯工具介紹 46
4.1Ninja 46
4.2GN 46
4.3系統宏定義 48
4.4添加源碼目錄和預編譯依賴庫 50
第5章SDP詳解 54
5.1PlanBv.s.UnifiedPlan 54
5.2Transceiver 54
5.3SDP詳解 57
5.3.1sessionmetadata 57
5.3.2videomediasection 57
5.3.3audiomediasection 60
5.3.4applicationmediasection 61
5.4操縱SDP 62

第6章線程模型 63
6.1三大線程的使用 63
6.1.1對外接口的線程切換 63
6.1.2內部代碼的線程切換 65
6.2三大線程的創建 66
6.2.1iOS/macOS創建PCFactory 68
6.2.2Android創建PCFactory 69
6.2.3Windows/Linux創建PCFactory 70
第7章視頻數據流程 72
7.1視頻數據流程概覽 72
7.2視頻采集 73
7.2.1iOS/macOS視頻采集 73
7.2.2Android視頻采集 79
7.2.3Windows/Linux視頻采集 85
7.3視頻渲染 87
7.3.1iOS/macOS視頻渲染 87
7.3.2Android視頻渲染 91
7.3.3Windows/Linux視頻渲染 92
7.4視頻編解碼 92
7.4.1iOS/macOS視頻編碼 94
7.4.2iOS/macOS視頻解碼 100
7.4.3Android視頻編碼 104
7.4.4Android視頻解碼 113
7.4.5Windows/Linux視頻編碼 120
7.4.6Windows/Linux視頻解碼 125
7.4.7編碼流控測試 125
7.5視頻數據流程調用棧 130
第8章音頻數據流程 134
8.1音頻數據流程概覽 134
8.2音頻采集和播放 135
8.2.1iOS音頻采集和播放 135
8.2.2Android音頻采集和播放 143
8.2.3macOS音頻采集和播放 153
8.2.4Windows音頻采集和播放 154
8.2.5Linux音頻采集和播放 154
8.3音頻設備模塊ADM 155
8.3.1iOSADM 155
8.3.2AndroidADM 156
8.3.3macOSADM 156
8.3.4WindowsADM 156
8.3.5LinuxADM 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.2iOSDataChannel 167
9.2.1創建DataChannel 167
9.2.2SDP 168
9.2.3發送消息 169
9.2.4接收消息 169
9.3AndroidDataChannel 170
9.3.1創建DataChannel 170
9.3.2SDP 170
9.3.3發送消息 170
9.3.4接收消息 171
9.4RTCQuicTransport 171

第10章純音/視頻 172
10.1概覽 172
10.2AudioTrack的禁用與啟用 173
10.3VideoTrack的禁用與啟用 173
10.4HijackCapturerObserver 174
10.4.1iOS的實現 174
10.4.2Android的實現 176
10.5track狀態的通知 177
10.6錄制相關 177
第11章多人通話 178
11.1概覽 178
11.1.1P2P網狀結構 178
11.1.2SFU結構 179
11.1.3MCU結構 180
11.2客戶端代碼實現 180
第12章日志和狀態統計 183
12.1概覽 183
12.2iOS集成MarsXLog 185
12.3Android集成MarsXLog 187
12.4RTCStatsReport 189
12.4.1AccumulatedValueSplitter 190
12.4.2RtcStats選擇函數 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.2iOS屏幕共享 211
13.2.1CFRPCapturer的實現 212
13.2.2CFRPCapturer的使用 214
13.2.3修改RTCVideoSource 214
13.3Android屏幕共享 215
13.3.1ScreenCapturerAndroid的實現 215
13.3.2ScreenCapturerAndroid的使用 217
第14章H.265支持 219
14.1概覽 220
14.2SDP 220
14.3編解碼 222
14.3.1iOS修改編碼代碼 222
14.3.2iOS修改解碼代碼 224
14.3.3Android修改編碼代碼 226
14.3.4Android修改編碼代碼 227
14.4RTP封包解包 227
第15章美顏 228
15.1Android美顏處理器 228
15.2iOS美顏處理器 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.4FFmpeg調用 252
17.5視頻關鍵幀 257
17.6視頻方向 258
17.7純音/視頻錄制 258
第18章項目外使用WebRTC 260
18.1概覽 260
18.2摘取源碼 260
18.3使用整體靜態庫 264
18.3.1std::__1的來源 264
18.3.2修改WebRTC編譯配置 266
18.3.3提取頭文件 267
18.4使用子模塊靜態庫 267
第19章信令 269
19.1AppRTCServer信令協議 269
19.1.1HTTPPOST加入房間 270
19.1.2HTTPGET獲取ICE服務器配置 271
19.1.3長連接注冊 271
19.1.4HTTPPOST發送消息 272
19.1.5長連接發送消息 272
19.1.6離開房間 273
19.1.7同時加入 274
19.1.8Offer/Answer和ICECandidate順序 274
19.2OWTServer信令協議 274
19.2.1OWTServer架構 274
19.2.2OWT信令協議 276
19.2.3HTTPPOST創建token 276
19.2.4SocketIO登錄 278
19.2.5SocketIO發布流 280
19.2.6SocketIO發送Offer和ICECandidate 280
19.2.7SocketIO接收Answer 281
19.2.8SocketIO訂閱流 282
19.2.9SocketIO接收其他用戶的通知 282
19.2.10SocketIO退出登錄 283
19.2.11Offer和ICECandidate順序 283
19.2.12錯誤重連 284
19.2.13HTTPGET用戶和流列表 284
19.3P2P網狀結構信令協議 285
19.3.1HTTPPOST加入房間 286
19.3.2長連接注冊 287
19.3.3WebSocket接收其他用戶的通知 287
19.3.4長連接發送Offer/Answer和ICECandidate 288
19.3.5離開房間 289
19.3.6錯誤重連 289
19.3.7Offer/Answer和ICECandidate順序 290
第20章NAT穿透 291
20.1NAT穿透原理 291
20.2coturn的基本使用 295
第21章OWTServerSFU數據流程 299
21.1進程結構和JavaScript代碼處理流程 299
21.1.1進程結構 299
21.1.2ManagementAPI 300
21.1.3WebRTCPortal 300
21.1.4ConferenceAgent 301
21.1.5WebRTCAgent 302
21.1.6WebRTCAgentnode間的流擴散 303
21.1.7ClusterManager 304
21.1.8完整過程總結 306
21.2C++代碼處理流程 307
21.2.1WebRTC信令處理 308
21.2.2WebRTC媒體數據處理 309
21.2.3流擴散處理 311
第22章OWTServerMCU數據流程 314
22.1JavaScript代碼處理流程 314
22.1.1ConferenceAgent 314
22.1.2AudioAgent 316
22.1.3VideoAgent 316
22.1.4轉碼處理 317
22.2C++代碼處理流程 317
22.2.1AudioMixer 317
22.2.2VideoMixer 318
22.2.3VideoTranscoder 320
后記 321
序: