RTC(Real-time Communications), 實(shí)時(shí)音視頻 ,是一個(gè)正在興起的風(fēng)口行業(yè),經(jīng)過(guò)短短幾年的時(shí)間,已經(jīng)有很多玩家進(jìn)入了這個(gè)行業(yè),最典型的應(yīng)用就是直播連麥和實(shí)時(shí)音視頻通信。但是,很多開(kāi)發(fā)者對(duì)一些概念還是有混淆的,比如RTC與WebRTC,RTC與直播。
一、RTC和直播有什么區(qū)別?
RTC的一個(gè)具體應(yīng)用是直播場(chǎng)景中的直播連麥,也就是低延時(shí)直播。普通直播,一般采用 RTMP協(xié)議,使用CDN進(jìn)行內(nèi)容分發(fā),會(huì)有幾秒甚至十幾秒的延時(shí),主播和觀眾的互動(dòng)只能通過(guò)文字短消息或送禮來(lái)進(jìn)行。而直播連麥,使用UDP協(xié)議,內(nèi)容實(shí)時(shí)傳輸,主播和觀眾可以進(jìn)行音視頻連麥互動(dòng),實(shí)時(shí)溝通,延時(shí)一般低至幾百毫秒。

基于 RTMP 技術(shù)的連麥
當(dāng)有連麥者時(shí),則主播端和連麥端,都分別推一路 RTMP 流到 CDN,CDN 再將這兩路 RTMP 流發(fā)送給觀眾端,觀眾端將兩路 RTMP 流合成為一個(gè)畫(huà)面。
RTMP 是基于 TCP 的標(biāo)準(zhǔn)協(xié)議,與 CDN 架構(gòu)兼容,對(duì)客戶來(lái)說(shuō)在現(xiàn)有單向直播架構(gòu)上,接入成本比較低,但是缺點(diǎn)也很明顯:
主播與連麥者交互時(shí),聲音會(huì)產(chǎn)生干擾,形成回音;
播與連麥者進(jìn)行交互,在 CDN 中傳輸延時(shí)較大;
觀眾端要接收兩條視頻流,帶寬、流量消耗過(guò)大,并且兩路視頻流解碼播放,耗費(fèi)CPU等資源也非常多。
二、RTC和WebRTC有什么區(qū)別?
實(shí)時(shí)通信(RTC)最容易和WebRTC混淆,實(shí)際上,二者不能劃等號(hào)。
RTC從功能流程上來(lái)說(shuō),包含采集、編碼、前后處理、傳輸、解碼、緩沖、渲染等很多環(huán)節(jié),上圖展現(xiàn)了一次RTC通信的簡(jiǎn)要流程。每一個(gè)細(xì)分環(huán)節(jié),還有更細(xì)分的技術(shù)模塊。比如,前后處理環(huán)節(jié)有美顏、濾鏡、回聲消除、噪聲抑制等,采集有麥克風(fēng)陣列等,編解碼有VP8、VP9、H.264、H.265等等。
WebRTC是RTC的一部分。WebRTC,是Google的一個(gè)專門(mén)針對(duì)網(wǎng)頁(yè)實(shí)時(shí)通信的標(biāo)準(zhǔn)及開(kāi)源項(xiàng)目。只提供了基礎(chǔ)的前端功能實(shí)現(xiàn),包括編碼解碼和抖動(dòng)緩沖等,開(kāi)發(fā)者若要基于WebRTC開(kāi)發(fā)商用項(xiàng)目,那么需要自行做服務(wù)端實(shí)現(xiàn)和部署,信令前后端選型實(shí)現(xiàn)部署,以及手機(jī)適配等一系列具體工作;在此之外還要在可用性和高質(zhì)量方面,進(jìn)行大量的改進(jìn)和打磨,對(duì)自身開(kāi)發(fā)能力的門(mén)檻要求非常高。一個(gè)專業(yè)的RTC技術(shù)服務(wù)系統(tǒng),需要除了涵蓋上述的通信環(huán)節(jié)外,實(shí)際上還需要有解決互聯(lián)網(wǎng)不穩(wěn)定性的專用通信網(wǎng)絡(luò),以及針對(duì)互聯(lián)網(wǎng)信道的高容忍度的音視頻信號(hào)處理算法。當(dāng)然常規(guī)云服務(wù)的高可用、服務(wù)質(zhì)量的保障和監(jiān)控維護(hù)工具等都只能算是一個(gè)專業(yè)服務(wù)商的基本模塊。所以,WebRTC僅是RTC技術(shù)棧中的幾個(gè)小細(xì)分的技術(shù)組合,并不是一個(gè)全棧解決方案。

基于 WebRTC 方式的連麥↑↑↑
WebRTC 的好處在于用戶體驗(yàn)好,不需要安裝東西,分享一個(gè)鏈接就可以看。
但這套方案需要主播端上傳兩路視頻:一路 P2P 與連麥者進(jìn)行交互,一路使用 RTMP 推到 CDN。還要下載一路視頻:連麥者P2P發(fā)送過(guò)來(lái)的交互數(shù)據(jù)。對(duì)主播端帶寬需求較高。
另外,主播端需要進(jìn)行多路視頻的編碼、解碼,又對(duì)主播端設(shè)備配置要求較高。而由于主播端和連麥者經(jīng)過(guò) CDN 合并成一路,無(wú)法實(shí)現(xiàn)主播端和連麥者視頻大小窗口切換。
版權(quán)聲明:本文章文字內(nèi)容來(lái)自第三方投稿,版權(quán)歸原始作者所有。本網(wǎng)站不擁有其版權(quán),也不承擔(dān)文字內(nèi)容、信息或資料帶來(lái)的版權(quán)歸屬問(wèn)題或爭(zhēng)議。如有侵權(quán),請(qǐng)聯(lián)系contentedit@huawei.com,本網(wǎng)站有權(quán)在核實(shí)確屬侵權(quán)后,予以刪除文章。