日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Why WebRTC|前世今生

發(fā)布時(shí)間:2024/1/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Why WebRTC|前世今生 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、前言


近幾年實(shí)時(shí)音視頻通信應(yīng)用呈現(xiàn)出了大爆發(fā)的趨勢。在這些實(shí)時(shí)通信技術(shù)的背后,有一項(xiàng)不得不提的技術(shù)——WebRTC。

今年 1 月,WebRTC 被 W3C 和 IETF 發(fā)布為正式標(biāo)準(zhǔn)。據(jù)調(diào)研機(jī)構(gòu) GrandViewReseach 的報(bào)告顯示,預(yù)計(jì) 2025 年全球 WebRTC 市場規(guī)模將達(dá)到 210.23 億美元,相較 2019 年 23 億美元的市場規(guī)模,5 年的復(fù)合年增長率為 43.6%

本系列內(nèi)容將和大家一起來探討,為什么 WebRTC 受到開發(fā)者及企業(yè)的青睞 ?未來 WebRTC 又將如何發(fā)展?以及聲網(wǎng)Agora 是怎樣基于 WebRTC 進(jìn)行二次開發(fā),又將如何支持 WebRTC NV 版本的?


在線會議、在線教育、在線面試、在線社交、在線醫(yī)療、金融證券在線開戶、智能家居等等已經(jīng)成為了現(xiàn)代人們生活中非常熟悉的一部分,將常見的線下場景轉(zhuǎn)至線上,人們足不出戶便能體驗(yàn)上述場景。這些實(shí)時(shí)互動場景在很大程度上已經(jīng)改變了我們原本的生活方式。

如果我們將時(shí)間倒回到 10 年前,也就是在 4G 即將商用的時(shí)候,幾乎所有的媒體和技術(shù)都在強(qiáng)調(diào) 4G 可以看高清視頻,但多數(shù)都聚焦在討論手機(jī)看視頻有多么的方便,沒有人預(yù)測到短視頻的徹底爆發(fā);多數(shù)人都知道 4G 的上傳速度可以視頻直播了,但當(dāng)時(shí)的設(shè)想更多的是應(yīng)用于專業(yè)的新聞?lì)I(lǐng)域,沒有想到這個(gè)全民皆可直播的時(shí)代的來臨;對于視頻會議的設(shè)想也大多停留在跨國辦公的需求上,但沒想到就在去年,線上辦公幾乎成為了每一位上班族的日常。

在這十年間,實(shí)時(shí)互動場景的日常化又是如何一步一步實(shí)現(xiàn)的呢?

從 2010 年左右,實(shí)時(shí)通信只能使用專有軟件、插件或Adobe Flash進(jìn)行實(shí)時(shí)通信;2013年,Chrome 和 Firefox 之間進(jìn)行了首次跨瀏覽器視頻通話;2014年,第一次跨瀏覽器數(shù)據(jù)傳輸?shù)靡詫?shí)現(xiàn),通過客戶端進(jìn)行實(shí)時(shí)通信打開了一個(gè)新興的趨勢......而今天,它被稱為WebRTC,我們每天都在 Chrome,Mozilla Firefox,Opera,Safari,Edge,iOS 和 Android 的實(shí)時(shí)互動場景中使用它。

2、什么是 WebRTC


WebRTC 是一個(gè)由 Google、Mozilla、Opera 等發(fā)起的開源項(xiàng)目,名稱源自網(wǎng)頁即時(shí)通信(Web Real-Time Communication)的縮寫。因此,不難看出這項(xiàng)技術(shù)最開始的目標(biāo)是希望為實(shí)現(xiàn)自由地在瀏覽器上進(jìn)行實(shí)時(shí)音視頻傳輸做準(zhǔn)備的。

“其實(shí) WebRTC 在不同場景下包含不同的含義,它既可以代表 Google 開源的 WebRTC 項(xiàng)目,又可以代表 W3C(World Wide Web Consortium-萬維網(wǎng)聯(lián)盟) 工作組制定的 WebRTC 標(biāo)準(zhǔn),也可以代表瀏覽器中的 WebRTC 接口,我們將他們統(tǒng)稱為 WebRTC 技術(shù)。”【1】多數(shù)時(shí)候,對于開發(fā)者而言 WebRTC 是一套支持網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)音視頻對話的 W3C Javascript API,它包括了音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸、顯示等功能。

由于幾乎所有主流瀏覽器都支持 WebRTC 標(biāo)準(zhǔn) API ,因此也讓瀏覽器之間無插件化的音視頻互通成為可能, 大大降低了音視頻開發(fā)的門檻,開發(fā)者只需要調(diào)用 WebRTC API 即可快速構(gòu)建出音視頻應(yīng)用。

3、開發(fā)者為什么喜歡使用 WebRTC


“WebRTC 的使命是使豐富、高質(zhì)量的 RTC 應(yīng)用程序能夠?yàn)闉g覽器、移動平臺和 IoT 設(shè)備開發(fā),并允許所有人通過一組通用協(xié)議進(jìn)行通信。”

3.1WebRTC 解決了什么問題?


在沒有 WebRTC 前,對于開發(fā)者而言 RTC 通信的難點(diǎn)主要來自于互聯(lián)網(wǎng)網(wǎng)絡(luò)復(fù)雜、延時(shí)敏感、實(shí)時(shí)音視頻流暢度及清晰度較低以及運(yùn)營成本較高等。但這些問題在 WebRTC 出現(xiàn)后都得到了較好的解決:

3.1.1互聯(lián)網(wǎng)網(wǎng)絡(luò)復(fù)雜

不同的 NAT、防火墻對媒體 P2P 的建立帶來了很大的挑戰(zhàn)。而 WebRTC 的出現(xiàn)為瀏覽器提供了端到端的直接通信,使開發(fā)者可以輕松地實(shí)現(xiàn)這種連接。同時(shí),WebRTC 里面有 P2P 打洞的開源項(xiàng)目 libjingle ,支持 STUN,TURN 等協(xié)議。

3.1.2延時(shí)敏感

在早期的 RTC 技術(shù)中,TCP(Transmission Control Protocol-傳輸控制協(xié)議)由于自身機(jī)制的缺陷,只能使用 UDP 傳輸,但這需要開發(fā)人員解決重傳、亂序等問題。而 WebRTC 則提供了 NACK,FEC 技術(shù),不再需要通過服務(wù)器進(jìn)行路由,減少了延遲和帶寬消耗。直接通信可提高數(shù)據(jù)傳輸和文件共享的速度。

3.1.3流暢性

互聯(lián)網(wǎng)網(wǎng)絡(luò)不穩(wěn)定,特別一些小運(yùn)營商,在流量使用高峰期往往無法保證足夠的帶寬。需要一套自適應(yīng)的算法來應(yīng)對網(wǎng)絡(luò)擁塞、平滑發(fā)送等問題。WebRTC 中提供了 TCC + SVC + PACER + JitterBuffer 技術(shù)支持。

3.1.4語音清晰

由于終端設(shè)備和環(huán)境復(fù)雜,會有噪聲、回聲的干擾,這時(shí)候 WebRTC 提供了 3A 算法 + NetEQ,讓實(shí)時(shí)環(huán)境中的聲音處理及互動體驗(yàn)得到了大幅的提升。

對于開發(fā)人員或企業(yè)而言,使用 WebRTC 的過程中只需要下載兼容 WebRTC 的瀏覽器并使用,不需要額外的軟件、插件或持續(xù)的服務(wù)器的參與就可以將音視頻應(yīng)用輕松嵌入到任何網(wǎng)站中,并通過 Internet 進(jìn)行連接,大大節(jié)省了開發(fā)時(shí)間和成本。

目前主流的瀏覽器如 Microsoft Edge、Google Chrome、Mozilla Firefox、Safari、Safari、Opera、Vivaldi 等都已支持 WebRTC。

3.2使用 WebRTC 安全嗎?


WebRTC 作為一項(xiàng)開源技術(shù),可在任何 Web 瀏覽器上免費(fèi)使用,并且不受插件限制。那么,這時(shí)候可能有人會問,使用 WebRTC 安全嗎?使用 WebRTC 會不會有惡意訪問我的用戶數(shù)據(jù)或者專用網(wǎng)絡(luò)的情況出現(xiàn)?

放心吧,在安全方面,WebRTC同樣做了優(yōu)化設(shè)計(jì):所有 WebRTC 媒體數(shù)據(jù)都必須經(jīng)過加密

由于 WebRTC 并非是一個(gè)插件,也不用安裝別的插件,因此所有應(yīng)用都可以在瀏覽器的沙箱中運(yùn)行,并不用再額外創(chuàng)建新進(jìn)程。也正因?yàn)槿绱?#xff0c; WebRTC 有效地阻止了惡意軟件進(jìn)入用戶系統(tǒng)。在任何實(shí)時(shí)通信應(yīng)用程序中,數(shù)據(jù)傳輸?shù)倪^程都有可能會增加安全風(fēng)險(xiǎn),因此加密是WebRTC 的強(qiáng)制性功能,并在所有媒體數(shù)據(jù)上強(qiáng)制執(zhí)行。【2】

3.2.1WebRTC使用兩種標(biāo)準(zhǔn)化的加密協(xié)議:

  • 數(shù)據(jù)報(bào)傳輸層安全性(DTLS)

  • 瀏覽器中內(nèi)置的標(biāo)準(zhǔn)化協(xié)議。是基于傳輸層協(xié)議(TLP)的數(shù)據(jù)流加密;

  • 由于 DTLS 使用用戶數(shù)據(jù)協(xié)議(UDP),因此保留了傳輸?shù)恼Z義;

  • 它是安全套接字層(SSL)的擴(kuò)展,任何 SSL 協(xié)議均可用于保護(hù) WebRTC 數(shù)據(jù),從而允許端到端加密。

3.2.2安全實(shí)時(shí)傳輸協(xié)議(SRTP)

  • 用于媒體流加密;

  • 它是對實(shí)時(shí)傳輸協(xié)議(RTP)的擴(kuò)展,該協(xié)議沒有任何內(nèi)置的安全性機(jī)制;

  • 為實(shí)時(shí)傳輸協(xié)議(RTP) 提供加密、完整性保證和消息身份驗(yàn)證。

(* 但 SRTP 協(xié)議也有它的一些缺點(diǎn),比如雖然它為 RTP 數(shù)據(jù)包提供加密,但不對標(biāo)頭進(jìn)行加密。)

在我們?nèi)粘J褂镁W(wǎng)絡(luò)下載應(yīng)用程序、電影或者通過郵件傳輸信息/文件的過程中,其實(shí)都有可能會存在惡意入侵的風(fēng)險(xiǎn)。但是,WebRTC 技術(shù)通過上述標(biāo)準(zhǔn),可以有效保護(hù)敏感數(shù)據(jù)的傳輸,為安全的實(shí)時(shí)通信環(huán)境提供保障。

4、WebRTC 可以直接食用?


WebRTC 是互聯(lián)網(wǎng)行業(yè)在實(shí)時(shí)通信方面影響深遠(yuǎn)的一項(xiàng)努力,大幅降低了開發(fā)人員實(shí)現(xiàn)實(shí)時(shí)音視頻通信功能的門檻。那我是不是有了好的想法,就可以直接使用 WebRTC 來進(jìn)行開發(fā)并商用了呢?(搓手😄...)很遺憾,答案是否定的。

由于 WebRTC 的傳輸是基于公共互聯(lián)網(wǎng),而公共互聯(lián)網(wǎng)并不是為了實(shí)時(shí)通信而設(shè)計(jì)的,因此在網(wǎng)絡(luò)協(xié)議、跨區(qū)域帶寬、跨運(yùn)營商、用戶設(shè)備、網(wǎng)絡(luò)架構(gòu)、文檔支持等方面都會對 WebRTC 的開發(fā)有牽制,從而會導(dǎo)致實(shí)時(shí)音視頻等傳輸質(zhì)量沒辦法得到有效的保證。

關(guān)于 WebRTC 的優(yōu)缺點(diǎn)詳情可參考:WebRTC現(xiàn)狀及優(yōu)缺點(diǎn),音視頻通信必看的開源項(xiàng)目

因此,可以說如果 WebRTC 直接拿過來商用的話,幾乎是不太可能的,當(dāng)下普遍的解決方案是自研,根據(jù)自身的業(yè)務(wù)場景進(jìn)行二次定制開發(fā),或者更簡單一點(diǎn)使用第三方 SDK。(Agora WebSDK 是基于 WebRTC 封裝的API集合,極致簡單,對開發(fā)者更加友好,能十行之內(nèi)完成一個(gè)簡單的 demo 并上線。點(diǎn)擊【查看詳情】)

關(guān)于 WebRTC 如何進(jìn)行二次定制開發(fā)以及 WebRTC 的最佳實(shí)踐內(nèi)容,我們會在本系列后續(xù)內(nèi)容中與大家分享。

原文鏈接:https://juejin.cn/post/6963914794470473764

★文末名片可以免費(fèi)領(lǐng)取音視頻開發(fā)學(xué)習(xí)資料,內(nèi)容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音視頻學(xué)習(xí)路線圖等等。

見下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

總結(jié)

以上是生活随笔為你收集整理的Why WebRTC|前世今生的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。