实时通信RTC技术栈之:视频编解码
1、前言
RTC(Real-time Communications),實(shí)時(shí)通信,是一個正在興起的風(fēng)口行業(yè),經(jīng)過短短一年的時(shí)間,已經(jīng)有很多玩家進(jìn)入了這個行業(yè),最典型的應(yīng)用就是直播連麥和實(shí)時(shí)音視頻通信。但是,很多開發(fā)者對一些概念還是有混淆的,比如 RTC 與 WebRTC,RTC 與直播,RTC 與 IM。
那么 RTC 技術(shù)棧究竟包含哪些技術(shù),我們會提供一系列文章,來解讀 RTC 技術(shù)棧。本文是系列文章的第一篇:講述視頻編解碼的一些基本知識。
先來糾正幾個概念。
2、RTC 和 WebRTC 有什么區(qū)別?
實(shí)時(shí)通信(RTC)最容易和 WebRTC 混淆,實(shí)際上,二者不能劃等號。
RTC 從功能流程上來說,包含采集、編碼、前后處理、傳輸、解碼、緩沖、渲染等很多環(huán)節(jié),上圖展現(xiàn)了一次 RTC 通信的簡要流程。每一個細(xì)分環(huán)節(jié),還有更細(xì)分的技術(shù)模塊。比如,前后處理環(huán)節(jié) 有美顏、濾鏡、回聲消除、噪聲抑制等,采集有麥克風(fēng)陣列等,編解碼有 VP8、VP9、H.264、H.265 等等。
上圖展現(xiàn)了 RTC 與 WebRTC 的關(guān)系,WebRTC 是 RTC 的一部分。WebRTC,是 Google 的一個專門針對網(wǎng)頁實(shí)時(shí)通信的標(biāo)準(zhǔn)及開源項(xiàng)目,只提供了基礎(chǔ)的前端功能實(shí)現(xiàn),包括編碼解碼和抖動緩沖等,開發(fā)者若要基于 WebRTC 開發(fā)商用項(xiàng)目,那么需要自行做服務(wù)端實(shí)現(xiàn)和部署,信令前后端選型實(shí)現(xiàn)部署,以及手機(jī)適配等一系列具體工作;在此之外還要在可用性和高質(zhì)量方面,進(jìn)行大量的改進(jìn)和打磨,對自身開發(fā)能力的門檻要求非常高。一個專業(yè)的 RTC 技術(shù)服務(wù)系統(tǒng),需要除了涵蓋上述的通信環(huán)節(jié)外,實(shí)際上還需要有解決互聯(lián)網(wǎng)不穩(wěn)定性的專用通信網(wǎng)絡(luò),以及針對互聯(lián)網(wǎng)信道的高容忍度的音視頻信號處理算法。當(dāng)然常規(guī)云服務(wù)的高可用、服務(wù)質(zhì)量的保障和監(jiān)控維護(hù)工具等都只能算是一個專業(yè)服務(wù)商的基本模塊。
所以,WebRTC 僅是 RTC 技術(shù)棧中的幾個小細(xì)分的技術(shù)組合,并不是一個全棧解決方案。
3、RTC 和直播有什么區(qū)別?
上圖展現(xiàn)的就是 RTC 與直播的關(guān)系,RTC 的一個具體應(yīng)用是直播場景中的直播連麥,也就是低延時(shí)直播。普通直播,一般采用 TCP 協(xié)議,使用 CDN 進(jìn)行內(nèi)容分發(fā),會有幾秒甚至十幾秒的延時(shí),主播和觀眾的互動只能通過文字短消息或送禮來進(jìn)行。而直播連麥,使用 UDP 協(xié)議,內(nèi)容實(shí)時(shí)傳輸,主播和觀眾可以進(jìn)行音視頻連麥互動,實(shí)時(shí)溝通,延時(shí)一般低至幾百毫秒。
4、視頻編解碼的現(xiàn)狀
視頻編解碼的作用,就是在設(shè)備的攝像頭采集畫面和前處理后,將圖像進(jìn)行壓縮,進(jìn)行數(shù)字編碼,用于傳輸。編解碼器的優(yōu)劣基本在于:壓縮效率的高低,速度和功耗。
VP8,是視頻壓縮解決方案廠商 On2 Technologies 的第八代視頻編解碼標(biāo)準(zhǔn),Google 收購 On2 后,就將 VP8 開源了,并且將其應(yīng)用到 WebRTC 中。目前,Google 也在主推新一代的編解碼標(biāo)準(zhǔn)——VP9。
H.264,是由 ITU-T 視頻編碼專家組(VCEG)和 ISO/IEC 動態(tài)圖像專家組(MPEG)聯(lián)合組成的聯(lián)合視頻組(JVT,Joint Video Team)提出的高度壓縮數(shù)字視頻編解碼器國際標(biāo)準(zhǔn)。 WebRTC 也同時(shí)支持 H.264。
VP8 和 H.264 是十幾年前發(fā)明的標(biāo)準(zhǔn),屬于同一代技術(shù)。這兩個標(biāo)準(zhǔn)處于發(fā)展成熟的階段,編碼效率、運(yùn)算復(fù)雜度和功耗上都達(dá)到了比較好的均衡。技術(shù)和應(yīng)用程度上,二者也略有區(qū)別,比如,硬件廠商對 H.264 的支持較廣泛,而對 VP8 的支持就比較有限。
VP9,開發(fā)始于 2011 年。VP9 的目標(biāo)之一是在保證相同質(zhì)量的情況下相對于 VP8 可以減少 50% 左右的碼率,換句話說,相同的碼率,VP9 能比 VP8 畫質(zhì)有非常明顯的提高。VP9 的一大的優(yōu)勢是專利費(fèi)用,Google 聲明可以免費(fèi)進(jìn)行使用。這和 H.264 和 H.265 不同有較大的差異(雖然,2013 年 cisco 已將 open264 開源,并聲稱在不修改 open264 代碼的情況下,能保證由 cisco 覆蓋相關(guān)的專利費(fèi)用)。
H.265 旨在在有限帶寬下傳輸更高質(zhì)量的網(wǎng)絡(luò)視頻,僅需原先的一半帶寬即可播放相同質(zhì)量的視頻。它與 H.264 有著相類似的算法架構(gòu),并同時(shí)對一些相關(guān)技術(shù)加以改進(jìn)而大幅提高視頻質(zhì)量。舉例來說,H.264 編碼器可以以 1Mbps 碼率實(shí)現(xiàn)標(biāo)清數(shù)字視頻壓縮;而 H.265 編碼器則可以利用相同的碼率編碼 720P 甚至更高的分辨率的高清視頻。這也意味著,在現(xiàn)有的家庭網(wǎng)絡(luò)情況下,我們的智能手機(jī)、平板機(jī)等移動設(shè)備將能夠直接在線播放 1080p 的全高清視頻。同時(shí),H.265 標(biāo)準(zhǔn)也同時(shí)支持 4K 和 8K 超高清視頻。
VP9 和 H.265,是最近 5 年制定的標(biāo)準(zhǔn),是當(dāng)前已經(jīng)完成標(biāo)準(zhǔn)中壓縮效率最高的。同樣的,H.265 是國際標(biāo)準(zhǔn),VP9 是 Google 目前主推的標(biāo)準(zhǔn)。H.265 在硬件支持上比較廣泛,Apple、高通、intel 等的芯片都支持 H.265 的硬件編解碼器。VP9 的硬件支持依然十分有限??傮w來說,新一代編碼器,編碼效率能比上一代提高了 30-50%,但是復(fù)雜度和功耗會比上一代大很多,所以純軟件編碼實(shí)現(xiàn)的話有一定瓶頸,現(xiàn)有的技術(shù)下,還是需要依靠硬件編解碼為主。
AVS 是我國具備自主知識產(chǎn)權(quán)的第二代信源編碼標(biāo)準(zhǔn)。目前,AVS1.0 在第三世界國家中已有廣泛應(yīng)用。AVS2.0,屬于與 H.265 和 VP9 同級的新一代標(biāo)準(zhǔn)。
編碼器只是標(biāo)準(zhǔn)和語法,并沒有限定應(yīng)用場景。因此,在實(shí)際應(yīng)用中,還要結(jié)合場景特點(diǎn),來進(jìn)行改進(jìn)和深度優(yōu)化。聲網(wǎng)的視頻編碼器,針對實(shí)時(shí)音視頻通信做了深度改進(jìn),更適應(yīng)公共互聯(lián)網(wǎng)的特點(diǎn),實(shí)時(shí)性和質(zhì)量上有很大提升。尤其是與網(wǎng)絡(luò)的深度結(jié)合,同時(shí)兼顧對抗丟包和網(wǎng)絡(luò)帶寬的波動。
5、視頻編解碼的探索方向
?
1VR 視頻標(biāo)準(zhǔn)
VR 視頻標(biāo)準(zhǔn)是當(dāng)前不論是學(xué)術(shù)界,還是商業(yè)應(yīng)用的熱門探索方向之一。VR 視頻的編碼目前繼續(xù)解決的技術(shù)問題有:圖像的顯示質(zhì)量、合成質(zhì)量和傳輸帶寬。
VR 視頻編碼先前的做法是,將已有的視頻壓縮標(biāo)準(zhǔn),應(yīng)用到 VR 場景中。但是,由于 VR 視頻內(nèi)容的特殊性和網(wǎng)絡(luò)帶寬的限制,目前的標(biāo)準(zhǔn)無法滿足 VR 視頻的壓縮需求。業(yè)界對 VR 視頻壓縮標(biāo)準(zhǔn)呼聲極高。將來高級的 VR 視頻形態(tài)應(yīng)該是自由沉浸立體視頻:在一定空間范圍內(nèi)提供 Anywhere + Anytime + Anyview +Stereo 的沉浸體驗(yàn)。
?
2高分辨率的需求
在 H.264 時(shí)代,編碼器主要應(yīng)用于低于 HD 的中小分辨率,稍微兼顧 1080P 高分辨率。但 H.265 時(shí)代,隨著硬件設(shè)備更好、帶寬更高,用戶開始對視頻分辨率的要求更高,人們開始發(fā)現(xiàn),用戶對視頻質(zhì)量要求是沒有止境。因此,新一代編碼器,更傾向于支持高分辨率,比如 4K 高清分辨率。新一代編碼器對高分辨率的壓縮效率可提高 50% 以上。
網(wǎng)易云信,你身邊的即時(shí)通訊和音視頻技術(shù)專家,了解我們,請戳網(wǎng)易云信官網(wǎng)
想要行業(yè)洞察和技術(shù)干貨,請關(guān)注網(wǎng)易云信博客
本文轉(zhuǎn)載自52im,作者:JackJiang
總結(jié)
以上是生活随笔為你收集整理的实时通信RTC技术栈之:视频编解码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebRTC实时音视频技术基础:基本架构
- 下一篇: 开源实时音视频技术WebRTC中RTP/