<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          WebRTC技術(shù)詳解(送書(shū)啦)

          共 5749字,需瀏覽 12分鐘

           ·

          2021-06-11 02:24

          著4G的普及和5G技術(shù)的應(yīng)用,實(shí)時(shí)音視頻技術(shù)正在蓬勃發(fā)展。實(shí)時(shí)通信技術(shù)已經(jīng)滲透到各行各業(yè),支撐著人們的日常生活。在互聯(lián)網(wǎng)領(lǐng)域,花椒、映客等直播平臺(tái)吸引了大量的用戶;在教育領(lǐng)域,通過(guò)實(shí)時(shí)直播技術(shù)搭建的“空中課堂”惠及全球數(shù)億學(xué)生;在醫(yī)療行業(yè),隨著電子處方單納入醫(yī)保,互聯(lián)網(wǎng)看病、復(fù)診正在興起,地域之間醫(yī)療資源不均衡的問(wèn)題被實(shí)時(shí)直播技術(shù)逐步消除。


          在WebRTC誕生之前,實(shí)時(shí)通信技術(shù)非常復(fù)雜,想獲得核心的音視頻編碼及傳輸技術(shù)需要支付昂貴的專利授權(quán)費(fèi)用。此外,將實(shí)時(shí)通信技術(shù)與業(yè)務(wù)結(jié)合也非常困難,并且很耗時(shí),通常只有較大規(guī)模的公司才有能力實(shí)現(xiàn)。

          WebRTC的出現(xiàn)使實(shí)時(shí)通信技術(shù)得以廣泛應(yīng)用。WebRTC制定、實(shí)現(xiàn)了一套統(tǒng)一且完整的實(shí)時(shí)通信標(biāo)準(zhǔn),并將這套標(biāo)準(zhǔn)開(kāi)源。這套標(biāo)準(zhǔn)包含了實(shí)時(shí)通信技術(shù)涉及的所有內(nèi)容,使用這套標(biāo)準(zhǔn),開(kāi)發(fā)人員無(wú)須關(guān)注音視頻編解碼、網(wǎng)絡(luò)連接、傳輸?shù)鹊讓蛹夹g(shù)細(xì)節(jié),可以專注于構(gòu)建業(yè)務(wù)邏輯,且這些底層技術(shù)是完全免費(fèi)的。WebRTC統(tǒng)一了各平臺(tái)的實(shí)時(shí)通信技術(shù),大部分操作系統(tǒng)及瀏覽器都支持WebRTC,無(wú)須安裝任何插件,就可以在瀏覽器端發(fā)起實(shí)時(shí)視頻通話。




          什么是WebRTC


          WebRTC(Web Real-Time Communication)是一個(gè)谷歌開(kāi)源項(xiàng)目,它提供了一套標(biāo)準(zhǔn)API,使Web應(yīng)用可以直接提供實(shí)時(shí)音視頻通信功能,不再需要借助任何插件。原生通信過(guò)程采用P2P協(xié)議,數(shù)據(jù)直接在瀏覽器之間交互,理論上不需要服務(wù)器端的參與。“為瀏覽器、移動(dòng)平臺(tái)、物聯(lián)網(wǎng)設(shè)備提供一套用于開(kāi)發(fā)功能豐富、高質(zhì)量的實(shí)時(shí)音視頻應(yīng)用的通用協(xié)議”是WebRTC的使命。

          WebRTC技術(shù)最初為Web打造,隨著WebRTC自身的演進(jìn),目前已經(jīng)可以將其應(yīng)用于各種應(yīng)用程序。




          WebRTC的技術(shù)架構(gòu)


          從技術(shù)實(shí)現(xiàn)的角度講,在瀏覽器之間進(jìn)行實(shí)時(shí)通信需要使用很多技術(shù),如音視頻編解碼、網(wǎng)絡(luò)連接管理、媒體數(shù)據(jù)實(shí)時(shí)傳輸?shù)龋€需要提供一組易用的API給開(kāi)發(fā)者使用。這些技術(shù)組合在一起,就是WebRTC技術(shù)架構(gòu),如圖1所示。

          圖1 WebRTC技術(shù)架構(gòu)


          WebRTC技術(shù)架構(gòu)的頂層分為兩個(gè)部分:


          一部分是Web API,一組JavaScript接口,由W3C維護(hù),開(kāi)發(fā)人員可以使用這些API在瀏覽器中創(chuàng)建實(shí)時(shí)通信應(yīng)用程序。

          另一部分是適用于移動(dòng)端及桌面開(kāi)發(fā)的libwebrtc,即使用WebRTC C++源碼在Windows、Android、iOS等平臺(tái)編譯后的開(kāi)發(fā)包,開(kāi)發(fā)人員可以使用這個(gè)開(kāi)發(fā)包打造原生的WebRTC應(yīng)用程序。

          第二層是WebRTC C ++ API,它是Web API和libwebrtc的底層實(shí)現(xiàn)。該層包含了連接管理、連接設(shè)置、會(huì)話狀態(tài)和數(shù)據(jù)傳輸?shù)腁PI。基于這些API,瀏覽器廠商可以方便地加入對(duì)WebRTC的支持。WebRTC規(guī)范里沒(méi)有包含信令協(xié)議,這部分需要研發(fā)人員依據(jù)業(yè)務(wù)特點(diǎn)自行實(shí)現(xiàn)。
          WebRTC支持的音頻編碼格式有OPUS和G.711,同時(shí)還在音頻處理層實(shí)現(xiàn)了回音消除及降噪功能。WebRTC支持的視頻編碼格式主要有VP8和H264(還有部分瀏覽器支持VP9及H265格式),WebRTC還實(shí)現(xiàn)了Jitter Buffer防抖動(dòng)及圖像增強(qiáng)等高級(jí)功能。

          媒體傳輸層,WebRTC在UDP之上增加了3個(gè)協(xié)議。
          ■數(shù)據(jù)包傳輸層安全性協(xié)議(DTLS)用于加密媒體數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)。
          ■安全實(shí)時(shí)傳輸協(xié)議(SRTP)用于傳輸音頻和視頻流。
          ■流控制傳輸協(xié)議(SCTP)用于傳輸應(yīng)用程序數(shù)據(jù)。

          WebRTC借助ICE技術(shù)在端與端之間建立P2P連接,它提供了一系列API,用于管理連接。WebRTC還提供了攝像頭、話筒、桌面等媒體采集API,使用這些API可以定制媒體流。




          如何學(xué)習(xí)WebRTC技術(shù)?


          WebRTC技術(shù)包含了音視頻編解碼技術(shù)、傳輸技術(shù)、流媒體服務(wù)器技術(shù)等,涵蓋了音視頻處理和傳輸?shù)姆椒矫婷妗_@些技術(shù)中任意一個(gè)都能成為獨(dú)立的課題,都值得花大量時(shí)間深入研究。除此之外,理解WebRTC相關(guān)API,還必須掌握現(xiàn)代Web技術(shù),尤其是ES6、Promise等語(yǔ)法知識(shí)。可見(jiàn),學(xué)習(xí)WebRTC技術(shù)需要掌握大量的預(yù)備知識(shí),這對(duì)于初學(xué)者來(lái)說(shuō)有一定的門檻。


          《WebRTC技術(shù)詳解:從0到1構(gòu)建多人視頻會(huì)議系統(tǒng)》是一本能夠降低國(guó)內(nèi)技術(shù)人員使用WebRTC的門檻,幫助研發(fā)人員更好地將WebRTC技術(shù)應(yīng)用到產(chǎn)品中的書(shū)。本書(shū)系統(tǒng)地涵蓋WebRTC的技術(shù)內(nèi)容,剝離層層技術(shù)面紗,將WebRTC以一種易于理解的形式完整呈現(xiàn)給國(guó)內(nèi)技術(shù)人員。





          本書(shū)特色

          ■全面涵蓋WebRTC 1.0規(guī)范。

          ■詳細(xì)講解WebRTC底層技術(shù)。

          ■結(jié)合示例演示W(wǎng)ebRTC API的使用。

          ■從零起步實(shí)現(xiàn)高效、實(shí)時(shí)的信令系統(tǒng)。

          ■使用WebRTC技術(shù)從0到1打造開(kāi)源視頻會(huì)議系統(tǒng)。






          作者介紹


          栗偉,資深音視頻技術(shù)專家,在該領(lǐng)域有多年實(shí)踐經(jīng)驗(yàn),對(duì)WebRTC有非常深入的研究。曾任職于中科院計(jì)算所、CC視頻,任職期間利用WebRTC技術(shù)開(kāi)發(fā)了直播、在線課堂、視頻會(huì)議等商業(yè)產(chǎn)品,并發(fā)用戶數(shù)達(dá)到500萬(wàn)。開(kāi)源社區(qū)的積極參與者,在GitHub上開(kāi)源了視頻會(huì)議項(xiàng)目WiLearning,免費(fèi)供中小企業(yè)使用。




          目錄

          ●第1章 WebRTC概述1

          1.1 WebRTC的歷史1

          1.2 WebRTC的技術(shù)架構(gòu)2

          1.3 WebRTC的網(wǎng)絡(luò)拓?fù)?

          1.4 Simulcast聯(lián)播4

          1.5 可伸縮視頻編碼5

          1.6 WebRTC的兼容性5

          1.7 其他直播技術(shù)6

          1.8 統(tǒng)一計(jì)劃與Plan B8

          1.9 本章小結(jié)9


          ●第2章 本地媒體10

          2.1 媒體流10

          2.1.1 構(gòu)造媒體流11

          2.1.2 MediaStream屬性11

          2.1.3 MediaStream方法11

          2.1.4 MediaStream事件14

          2.2 媒體軌道15

          2.2.1 MediaStreamTrack屬性15

          2.2.2 MediaStreamTrack方法17

          2.2.3 MediaStreamTrack事件20

          2.3 媒體約束22

          2.3.1 約束類型22

          2.3.2 數(shù)據(jù)類型與用法23

          2.3.3 通用約束25

          2.3.4 視頻約束25

          2.3.5 音頻約束25

          2.3.6 屏幕共享約束26

          2.3.7 圖像約束26

          2.3.8 約束的advanced屬性27

          2.4 媒體設(shè)備28

          2.4.1 WebRTC隱私和安全28

          2.4.2 獲取攝像頭與話筒29

          2.4.3 共享屏幕30

          2.4.4 查詢媒體設(shè)備31

          2.4.5 監(jiān)聽(tīng)媒體設(shè)備變化33

          2.5 從canvas獲取媒體流34

          2.6 從媒體元素獲取媒體流34

          2.7 播放媒體流35

          2.8 錄制媒體流36

          2.8.1 構(gòu)造MediaRecorder36

          2.8.2 MediaRecorder屬性37

          2.8.3 MediaRecorder方法39

          2.8.4 MediaRecorder事件42

          2.9 示例45

          2.9.1 代碼結(jié)構(gòu)45

          2.9.2 獲取圖片像素?cái)?shù)據(jù)46

          2.9.3 替換視頻背景47

          2.10 本章小結(jié)48


          ●第3章 傳輸技術(shù)49

          3.1 RTP49

          3.2 RTCP52

          3.3 SRTP/SRTCP54

          3.4 TLS/DTLS55

          3.5 SDP55

          3.6 ICE57

          3.7 搭建STUN/TURN服務(wù)器63

          3.8 本章小結(jié)65


          ●第4章 連接管理66

          4.1 WebRTC建立連接的過(guò)程66

          4.1.1 會(huì)話描述信息RTCSession-Description69

          4.1.2 pending狀態(tài)與current狀態(tài)70

          4.1.3 ICE候選者RTCIceCandidate70

          4.2 RTCPeerConnection接口72

          4.2.1 構(gòu)造函數(shù)RTCPeerConnection73

          4.2.2 連接配置RTCConfiguration74

          4.2.3 RTCPeerConnection接口的屬性76

          4.2.4 RTCPeerConnection接口的方法82

          4.2.5 RTCPeerConnection接口的事件90

          4.3 完美協(xié)商模式94

          4.3.1 SDP沖突問(wèn)題95

          4.3.2 使用完美協(xié)商模式95

          4.3.3 再談ICE重啟97

          4.4 示例98

          4.4.1 運(yùn)行示例98

          4.4.2 使用WebSocket99

          4.4.3 創(chuàng)建RTCPeerConnection的時(shí)機(jī)100

          4.5 本章小結(jié)102


          ●第5章 RTP媒體管理103

          5.1 WebRTC編解碼104

          5.2 RTCPeerConnection RTP擴(kuò)展110

          5.2.1 RTCPeerConnection擴(kuò)展方法111

          5.2.2 RTCPeerConnection擴(kuò)展事件113

          5.3 傳輸媒體流114

          5.3.1 無(wú)流軌道115

          5.3.2 有流軌道115

          5.4 RTP收發(fā)管理116

          5.4.1 RTCRtpTransceiver屬性117

          5.4.2 RTCRtpTransceiver方法118

          5.5 RTP發(fā)送器118

          5.5.1 RTCRtpSender屬性119

          5.5.2 RTCRtpSender方法119

          5.6 RTP接收器123

          5.6.1 RTCRtpReceiver屬性123

          5.6.2 RTCRtpReceiver方法123

          5.7 DTLS傳輸層126

          5.7.1 RTCDtlsTransport屬性126

          5.7.2 RTCDtlsTransport方法127

          5.7.3 RTCDtlsTransport事件127

          5.8 ICE傳輸層128

          5.8.1 RTCIceTransport屬性128

          5.8.2 RTCIceTransport方法130

          5.8.3 RTCIceTransport事件132

          5.9 使用DTMF134

          5.9.1 RTCDTMFSender屬性134

          5.9.2 RTCDTMFSender方法135

          5.9.3 RTCDTMFSender事件135

          5.10 RTC錯(cuò)誤處理136

          5.11 通話的掛起與恢復(fù)137

          5.11.1 通話掛起137

          5.11.2 通話恢復(fù)138

          5.12 示例139

          5.12.1  動(dòng)態(tài)設(shè)置視頻碼率140

          5.12.2  使用VP9和H264141

          5.12.3 使用虛擬背景144

          5.13 本章小結(jié)145


          ●第6章 信令服務(wù)器146

          6.1 使用Node.js147

          6.2 使用TypeScript156

          6.3 使用Express164

          6.4 使用Socket.IO173

          6.5 實(shí)現(xiàn)信令服務(wù)器179

          6.6 實(shí)現(xiàn)信令客戶端186

          6.7 示例189

          6.8 本章小結(jié)191


          ●第7章 數(shù)據(jù)通道192

          7.1 SCTP192

          7.2 RTCPeerConnection數(shù)據(jù)通道擴(kuò)展接口196

          7.3 RTCSctpTransport199

          7.4 RTCDataChannel200

          7.5 帶內(nèi)協(xié)商與帶外協(xié)商206

          7.6 文字聊天與文件傳輸206

          7.7 本章小結(jié)216


          ●第8章 統(tǒng)計(jì)數(shù)據(jù)217

          8.1 統(tǒng)計(jì)數(shù)據(jù)入口217

          8.2 RTCStats及其擴(kuò)展219

          8.3 實(shí)時(shí)碼率監(jiān)測(cè)241

          8.3.1 使用Chart.js242

          8.3.2 獲取碼率數(shù)據(jù)244

          8.4 本章小結(jié)247


          ●第9章 移動(dòng)端WebRTC248

          9.1 原生應(yīng)用與混合應(yīng)用248

          9.2 原生開(kāi)發(fā)環(huán)境249

          9.2.1 Android原生開(kāi)發(fā)環(huán)境249

          9.2.2 iOS原生開(kāi)發(fā)環(huán)境250

          9.3 WebView251

          9.4 Cordova252

          9.4.1 編譯環(huán)境253

          9.4.2 全局配置config.xml254

          9.4.3 應(yīng)用程序行為preference258

          9.4.4 應(yīng)用程序圖標(biāo)icon261

          9.4.5 簡(jiǎn)單的WebRTC移動(dòng)應(yīng)用264

          9.4.6 調(diào)試Cordova應(yīng)用267

          9.5 Ionic Framework268

          9.5.1 安裝與使用269

          9.5.2 開(kāi)發(fā)工具269

          9.6 基于Ionic的WebRTC移動(dòng)應(yīng)用270

          9.6.1 使用模板創(chuàng)建應(yīng)用程序271

          9.6.2 首頁(yè)組件272

          9.6.3 連接管理服務(wù)275

          9.6.4 視頻與聊天組件281

          9.6.5 構(gòu)建Android應(yīng)用程序283

          9.6.6 構(gòu)建iOS應(yīng)用程序285

          9.7 本章小結(jié)286


          ●第10章 從0到1打造多人視頻會(huì)議系統(tǒng)287

          10.1 整體設(shè)計(jì)287

          10.2 媒體服務(wù)器289

          10.2.1 OWT289

          10.2.2 Kurento289

          10.2.3 Janus290

          10.2.4 Mediasoup291

          10.2.5 媒體服務(wù)器的選擇291

          10.3 Mediasoup信令交互過(guò)程293

          10.4 服務(wù)器端實(shí)現(xiàn)294

          10.4.1 房間與參與者295

          10.4.2 管理與監(jiān)控接口296

          10.5 客戶端實(shí)現(xiàn)298

          10.5.1 發(fā)布媒體流298

          10.5.2 訂閱媒體流301

          10.5.3 共享桌面303

          10.5.4 共享本地媒體303

          10.5.5 文檔及白板304

          10.5.6 文字聊天307

          10.6 傳輸質(zhì)量監(jiān)控308

          10.7 從網(wǎng)絡(luò)故障中恢復(fù)309

          10.8 本章小結(jié)310

          上下滑動(dòng)查看



          WebRTC降低了實(shí)時(shí)通信技術(shù)的門檻,使得之前只有互聯(lián)網(wǎng)巨頭才能掌握的實(shí)時(shí)通信技術(shù)得以普及,使得我們能夠在家遠(yuǎn)程辦公,孩子們能夠“停課不停學(xué)”。相信在5G普及之后,WebRTC還會(huì)迎來(lái)更加蓬勃的發(fā)展。

          可以預(yù)見(jiàn),未來(lái)將有更多技術(shù)人員學(xué)習(xí)并應(yīng)用WebRTC,希望本書(shū)能夠幫助大家輕松踏入WebRTC的技術(shù)殿堂!


          最后的重點(diǎn),就是本次的送書(shū)啦~~


          公眾號(hào)福利活動(dòng),將送出三本《WebRTC 技術(shù)詳解》,無(wú)套路,直接識(shí)別小程序抽獎(jiǎng)即可。


          中獎(jiǎng)的同學(xué)記得加我微信 ezglumes ,方便聯(lián)系地址送書(shū)。



          如果你沒(méi)中獎(jiǎng)也不要擔(dān)心,WebRTC 技術(shù)詳解在網(wǎng)上已經(jīng)開(kāi)始售賣了。各大網(wǎng)站,均可購(gòu)買,不到一頓飯錢就可購(gòu)書(shū)回家。


          學(xué)成之后,別忘了多多交流和反饋哦,早日成為音視頻大佬~~

          瀏覽 14
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋色图 | 操逼逼AV| 精品豆花视频在线 | 污污污www精品国产网站 | 欧美国产操逼 |