天天看點

淺析即時通訊開發實時通信技術中的視訊編解碼

RTC(Real-time Communications),實時通信,是一個正在興起的風口行業,經過短短一年的時間,已經有很多玩家進入了這個行業,最典型的應用就是直播連麥和實時音視訊通信。但是,很多開發者對一些概念還是有混淆的,比如 RTC 與 WebRTC,RTC 與直播,RTC 與 IM。

淺析即時通訊開發實時通信技術中的視訊編解碼

實時通信(RTC)最容易和 WebRTC 混淆,實際上,二者不能劃等号。

RTC 從功能流程上來說,包含采集、編碼、前後處理、傳輸、解碼、緩沖、渲染等很多環節,上圖展現了一次 RTC 通信的簡要流程。每一個細分環節,還有更細分的技術子產品。比如,前後處理環節 有美顔、濾鏡、回聲消除、噪聲抑制等,采集有麥克風陣列等,編解碼有 VP8、VP9、H.264、H.265 等等。

WebRTC 是 RTC 的一部分。WebRTC,是 Google 的一個專門針對網頁實時通信的标準及開源項目,隻提供了基礎的前端功能實作,包括編碼解碼和抖動緩沖等,開發者若要基于 WebRTC 開發商用項目,那麼需要自行做服務端實作和部署,信令前後端選型實作部署,以及手機适配等一系列具體工作;在此之外還要在可用性和高品質方面,進行大量的改進和打磨,對自身開發能力的門檻要求非常高。一個專業的 RTC 技術服務系統,需要除了涵蓋上述的通信環節外,實際上還需要有解決網際網路不穩定性的專用通信網絡,以及針對網際網路信道的高容忍度的音視訊信号處理算法。當然正常雲服務的高可用、服務品質的保障和監控維護工具等都隻能算是一個專業服務商的基本子產品。

是以,WebRTC 僅是 RTC 技術棧中的幾個小細分的技術組合,并不是一個全棧解決方案。

RTC 的一個具體應用是直播場景中的直播連麥,也就是低延時直播。普通直播,一般采用 TCP 協定,使用 CDN 進行内容分發,會有幾秒甚至十幾秒的延時,主播和觀衆的互動隻能通過文字短消息或送禮來進行。而直播連麥,使用 UDP 協定,内容實時傳輸,主播和觀衆可以進行音視訊連麥互動,實時溝通,延時一般低至幾百毫秒。即時通訊聊天軟體app開發可以加蔚可雲的v:weikeyun24咨詢

淺析即時通訊開發實時通信技術中的視訊編解碼

視訊編解碼的作用,就是在裝置的攝像頭采集畫面和前處理後,将圖像進行壓縮,進行數字編碼,用于傳輸。編解碼器的優劣基本在于:壓縮效率的高低,速度和功耗。

VP8,是視訊壓縮解決方案廠商 On2 Technologies 的第八代視訊編解碼标準,Google 收購 On2 後,就将 VP8 開源了,并且将其應用到 WebRTC 中。目前,Google 也在主推新一代的編解碼标準——VP9。

H.264,是由 ITU-T 視訊編碼專家組(VCEG)和 ISO/IEC 動态圖像專家組(MPEG)聯合組成的聯合視訊組(JVT,Joint Video Team)提出的高度壓縮數字視訊編解碼器國際标準。 WebRTC 也同時支援 H.264。

VP8 和 H.264 是十幾年前發明的标準,屬于同一代技術。這兩個标準處于發展成熟的階段,編碼效率、運算複雜度和功耗上都達到了比較好的均衡。技術和應用程度上,二者也略有差別,比如,硬體廠商對 H.264 的支援較廣泛,而對 VP8 的支援就比較有限。

VP9,開發始于 2011 年。VP9 的目标之一是在保證相同品質的情況下相對于 VP8 可以減少 50% 左右的碼率,換句話說,相同的碼率,VP9 能比 VP8 畫質有非常明顯的提高。VP9 的一大的優勢是專利費用,Google 聲明可以免費進行使用。這和 H.264 和 H.265 不同有較大的差異(雖然,2013 年 cisco 已将 open264 開源,并聲稱在不修改 open264 代碼的情況下,能保證由 cisco 覆寫相關的專利費用)。

H.265 旨在在有限帶寬下傳輸更高品質的網絡視訊,僅需原先的一半帶寬即可播放相同品質的視訊。它與 H.264 有着相類似的算法架構,并同時對一些相關技術加以改進而大幅提高視訊品質。舉例來說,H.264 編碼器可以以 1Mbps 碼率實作标清數字視訊壓縮;而 H.265 編碼器則可以利用相同的碼率編碼 720P 甚至更高的分辨率的高清視訊。這也意味着,在現有的家庭網絡情況下,我們的智能手機、平闆機等移動裝置将能夠直接線上播放 1080p 的全高清視訊。同時,H.265 标準也同時支援 4K 和 8K 超高清視訊。

VP9 和 H.265,是最近 5 年制定的标準,是目前已經完成标準中壓縮效率最高的。同樣的,H.265 是國際标準,VP9 是 Google 目前主推的标準。H.265 在硬體支援上比較廣泛,Apple、高通、intel 等的晶片都支援 H.265 的硬體編解碼器。VP9 的硬體支援依然十分有限。總體來說,新一代編碼器,編碼效率能比上一代提高了 30-50%,但是複雜度和功耗會比上一代大很多,是以純軟體編碼實作的話有一定瓶頸,現有的技術下,還是需要依靠硬體編解碼為主。

AVS 是我國具備自主知識産權的第二代信源編碼标準。目前,AVS1.0 在第三世界國家中已有廣泛應用。AVS2.0,屬于與 H.265 和 VP9 同級的新一代标準。

編碼器隻是标準和文法,并沒有限定應用場景。是以,在實際應用中,還要結合場景特點,來進行改進和深度優化。聲網的視訊編碼器,針對實時音視訊通信做了深度改進,更适應公共網際網路的特點,實時性和品質上有很大提升。尤其是與網絡的深度結合,同時兼顧對抗丢包和網絡帶寬的波動。

繼續閱讀