RTC(Real-time Communications), 實時音視頻 ,是一個正在興起的風(fēng)口行業(yè),經(jīng)過短短幾年的時間,已經(jīng)有很多玩家進入了這個行業(yè),最典型的應(yīng)用就是直播連麥和實時音視頻通信。但是,很多開發(fā)者對一些概念還是有混淆的,比如RTC與WebRTC,RTC與直播。
一、RTC和直播有什么區(qū)別?
RTC的一個具體應(yīng)用是直播場景中的直播連麥,也就是低延時直播。普通直播,一般采用 RTMP協(xié)議,使用CDN進行內(nèi)容分發(fā),會有幾秒甚至十幾秒的延時,主播和觀眾的互動只能通過文字短消息或送禮來進行。而直播連麥,使用UDP協(xié)議,內(nèi)容實時傳輸,主播和觀眾可以進行音視頻連麥互動,實時溝通,延時一般低至幾百毫秒。
基于 RTMP 技術(shù)的連麥
當(dāng)有連麥者時,則主播端和連麥端,都分別推一路 RTMP 流到 CDN,CDN 再將這兩路 RTMP 流發(fā)送給觀眾端,觀眾端將兩路 RTMP 流合成為一個畫面。
RTMP 是基于 TCP 的標(biāo)準(zhǔn)協(xié)議,與 CDN 架構(gòu)兼容,對客戶來說在現(xiàn)有單向直播架構(gòu)上,接入成本比較低,但是缺點也很明顯:
主播與連麥者交互時,聲音會產(chǎn)生干擾,形成回音;
播與連麥者進行交互,在 CDN 中傳輸延時較大;
觀眾端要接收兩條視頻流,帶寬、流量消耗過大,并且兩路視頻流解碼播放,耗費CPU等資源也非常多。
二、RTC和WebRTC有什么區(qū)別?
實時通信(RTC)最容易和WebRTC混淆,實際上,二者不能劃等號。
RTC從功能流程上來說,包含采集、編碼、前后處理、傳輸、解碼、緩沖、渲染等很多環(huán)節(jié),上圖展現(xiàn)了一次RTC通信的簡要流程。每一個細分環(huán)節(jié),還有更細分的技術(shù)模塊。比如,前后處理環(huán)節(jié)有美顏、濾鏡、回聲消除、噪聲抑制等,采集有麥克風(fēng)陣列等,編解碼有VP8、VP9、H.264、H.265等等。
WebRTC是RTC的一部分。WebRTC,是Google的一個專門針對網(wǎng)頁實時通信的標(biāo)準(zhǔn)及開源項目。只提供了基礎(chǔ)的前端功能實現(xiàn),包括編碼解碼和抖動緩沖等,開發(fā)者若要基于WebRTC開發(fā)商用項目,那么需要自行做服務(wù)端實現(xiàn)和部署,信令前后端選型實現(xiàn)部署,以及手機適配等一系列具體工作;在此之外還要在可用性和高質(zhì)量方面,進行大量的改進和打磨,對自身開發(fā)能力的門檻要求非常高。一個專業(yè)的RTC技術(shù)服務(wù)系統(tǒng),需要除了涵蓋上述的通信環(huán)節(jié)外,實際上還需要有解決互聯(lián)網(wǎng)不穩(wěn)定性的專用通信網(wǎng)絡(luò),以及針對互聯(lián)網(wǎng)信道的高容忍度的音視頻信號處理算法。當(dāng)然常規(guī)云服務(wù)的高可用、服務(wù)質(zhì)量的保障和監(jiān)控維護工具等都只能算是一個專業(yè)服務(wù)商的基本模塊。所以,WebRTC僅是RTC技術(shù)棧中的幾個小細分的技術(shù)組合,并不是一個全棧解決方案。
基于 WebRTC 方式的連麥↑↑↑
WebRTC 的好處在于用戶體驗好,不需要安裝東西,分享一個鏈接就可以看。
但這套方案需要主播端上傳兩路視頻:一路 P2P 與連麥者進行交互,一路使用 RTMP 推到 CDN。還要下載一路視頻:連麥者P2P發(fā)送過來的交互數(shù)據(jù)。對主播端帶寬需求較高。
另外,主播端需要進行多路視頻的編碼、解碼,又對主播端設(shè)備配置要求較高。而由于主播端和連麥者經(jīng)過 CDN 合并成一路,無法實現(xiàn)主播端和連麥者視頻大小窗口切換。
版權(quán)聲明:本文章文字內(nèi)容來自第三方投稿,版權(quán)歸原始作者所有。本網(wǎng)站不擁有其版權(quán),也不承擔(dān)文字內(nèi)容、信息或資料帶來的版權(quán)歸屬問題或爭議。如有侵權(quán),請聯(lián)系contentedit@huawei.com,本網(wǎng)站有權(quán)在核實確屬侵權(quán)后,予以刪除文章。