什么是RTC
RTC(Real time communication)實(shí)時(shí)通信,是實(shí)時(shí)音視頻的一個(gè)簡(jiǎn)稱,我們常說(shuō)的RTC技術(shù)一般指的是WebRTC技術(shù),已經(jīng)被 W3C 和 IETF 發(fā)布為正式標(biāo)準(zhǔn)。由于幾乎所有主流瀏覽器都支持 WebRTC 標(biāo)準(zhǔn) API ,因此也讓瀏覽器之間無(wú)插件化的音視頻互通成為可能, 大大降低了音視頻開(kāi)發(fā)的門(mén)檻,開(kāi)發(fā)者只需要調(diào)用 WebRTC API 即可快速構(gòu)建出音視頻應(yīng)用。
更廣義的RTC技術(shù),不單單局限于音視頻,包括IM、圖片、白板、文件共享等富媒體在內(nèi)的實(shí)時(shí)交互也屬于RTC技術(shù)范疇。
解決什么問(wèn)題
直播中我們關(guān)心的幾個(gè)點(diǎn):延遲、質(zhì)量、成本等。
傳統(tǒng)rtmp直播痛點(diǎn):TCP,延遲高、擁塞導(dǎo)致卡頓問(wèn)題較多(質(zhì)量問(wèn)題)。
互聯(lián)網(wǎng)網(wǎng)絡(luò)復(fù)雜、延時(shí)敏感、實(shí)時(shí)音視頻流暢度及清晰度較低以和運(yùn)營(yíng)成本較高等。
沒(méi)有一項(xiàng)技術(shù)能兼顧并解決直播中的所有問(wèn)題,RTC是時(shí)延、流暢、質(zhì)量、成本等的平衡,成為技術(shù)選型落地的模型。
我們?cè)谧鯮TC應(yīng)用的時(shí)候,不應(yīng)該一味地追求一些點(diǎn),不應(yīng)該在某些單點(diǎn)上用力過(guò)猛(比如單純的追求抗丟包能力),導(dǎo)致最終的效果會(huì)打很多折扣,不能只著眼于延遲低,畫(huà)質(zhì)高,應(yīng)該把視角放在用戶的整體體驗(yàn)上。
RTC與傳統(tǒng)RTMP直播對(duì)比
| 參數(shù)對(duì)比 | RTC | RTMP(CDN) |
|---|---|---|
| 底層推流端傳輸協(xié)議 | RTP(UDP) | RTMP(TCP) |
| 質(zhì)量保證Qos | RTCP | - |
| 播放端協(xié)議 | RTP | rtmp、hls、http-flv |
| 延遲 | 400ms以內(nèi) | rtmp 3s+、hls 15s+、http-flv 3s+ |
| 同步性 | 推流端與播放端基本實(shí)時(shí),同步性非常好 | 推流端與播放端同步性差 |
| 互動(dòng)體驗(yàn)性 | 優(yōu) | 差 |
| 關(guān)注點(diǎn) | 關(guān)注實(shí)時(shí)性 | 關(guān)注質(zhì)量 |
| 拓?fù)浣Y(jié)構(gòu) | 雙向,既有推流又有拉流 | 單向,主播推流、觀眾拉流 |
| 技術(shù)限制 | 參與人數(shù)限制,以聲網(wǎng)為例支持17人互動(dòng),百萬(wàn)觀看(低延遲直播產(chǎn)品) | 一個(gè)主播,觀眾數(shù)理論無(wú)上限 |
| 安全性 | 所有 WebRTC 媒體數(shù)據(jù)都必須經(jīng)過(guò)加密 | 原生無(wú)加密技術(shù),需定制開(kāi)發(fā)視頻加密和防盜鏈 |
| 兼容性 | 為web端而生,提供Native sdk(移動(dòng)端、PC端),無(wú)服務(wù)端通用方案需自行開(kāi)發(fā) | web已不支持發(fā)起rtmp直播(Adobe 2020 12棄用flash)rtmp標(biāo)準(zhǔn)協(xié)議接入,服務(wù)端由技術(shù)成熟的CDN分發(fā) |
| 復(fù)雜性 | 非常復(fù)雜,涉及技術(shù)龐雜 | 比較簡(jiǎn)單清晰 |
| 典型應(yīng)用場(chǎng)景 | 推流端與播放端互動(dòng)性強(qiáng)的場(chǎng)景:視頻會(huì)議、連麥互動(dòng)、語(yǔ)音/視頻聊天 | 推流端與播放端同步性不是很高要求的場(chǎng)景:活動(dòng)/賽事直播、秀場(chǎng)直播、游戲直播、直播帶貨 |
| 價(jià)格(成本) | 高 | 低 |
一套完善的RTC服務(wù)應(yīng)用的技術(shù)
RTMP只是TCP上的一個(gè)標(biāo)準(zhǔn)協(xié)議,所以接入是一個(gè)標(biāo)準(zhǔn)體系,推流端可以是OBS這種直播軟件工具,也可自開(kāi)發(fā)rtmp推流工具,播放端可以是Flash播放器(Adobe 2020 12月份已經(jīng)棄用)、服務(wù)端有技術(shù)成熟的CDN技術(shù)和設(shè)施進(jìn)行分發(fā)、Native的播放器或者flv.js/hls.js這種開(kāi)源播放器組件,遵循rtmp、flv、hls標(biāo)準(zhǔn)即可,接入成本比較低。而一個(gè)完善的RTC服務(wù)應(yīng)用,需要從推流端、服務(wù)端、到拉流端,一整套完整的全鏈路閉環(huán)技術(shù)。
RTC的應(yīng)用場(chǎng)景
視頻會(huì)議、在線教育小班課、大班課、1v1視頻連麥、多人視頻連麥互動(dòng)、語(yǔ)音聊天室、在線面試、在線醫(yī)療、云游戲、智能家居、在線簽約、在線K歌等,遍地開(kāi)花。
比如Zoom、騰訊會(huì)議、釘釘會(huì)議、微信音視頻聊天
RTC+RTMP
互動(dòng)連麥+服務(wù)端轉(zhuǎn)推rtmp至CDN,CDN分發(fā)給觀眾。
RTC行業(yè)狀況
RTC服務(wù)提供商
聲網(wǎng)、騰訊云音視頻、即構(gòu)、阿里云RTC、華為云RTC、微吼VRTC、網(wǎng)易云信RTC、保利威RTC、Ucloud RTC、融云RTC、拍樂(lè)云等。
RTC展望
5G時(shí)代RTC技術(shù)滿足實(shí)時(shí)通信的同時(shí),將賦能 AI、AR、VR、智能家居、云游戲、遠(yuǎn)程輔助駕駛等場(chǎng)景化落地。