從遊戲語音到視頻社交,一文詳解2017實時互聯網最熱技術

2017 已過大半,從年初盛起的《王者榮耀》、《狼人殺》卻依然是最火爆的遊戲產品,其共同特性都在於集成了實時語音功能,前者左手走位右手技能,語音天然也就成爲了很是必要的屬性,然後者更不用說,本就是純粹依靠實時語音進行下去的遊戲。javascript

而從遊戲到直播、在線教育/醫療以及 VR/AR、AI 等互聯網垂直行業及創新技術,這樣的例子還有不少。好比轉型作直播的陌陌在最新的 8.0 版本中推出了「快聊」、「狼人殺」、「派對」等實時視頻社交玩法;小米在新發布智能音箱中也集成了實時語音雲服務。隨着互聯網服務愈來愈廉價易得,諸如網絡電話、視頻通話、全互動直播等實時場景已然成爲用戶的廣泛需求,愈來愈多的規模化應用基於使用模式及場景集成了實時音視頻功能,「實時」儼然已經是互聯網最熱的標籤詞之一。html

從互聯網發展歷程看 —— 實時通訊和互聯網交叉融合所帶來的改變

但實際上,始建於上世紀 60 年代的互聯網自己並不是爲「實時」所設計,受限於當時的應用場景和技術,再加上不一樣國家、運營商之間人爲製造的屏障,通訊技術在實時傳輸、質量保證等各方面均可謂差強人意。前端

也正因如此,從互聯網誕生之日起,一代又一代的技術人便在對通訊技術進行不斷地更新升級。1989年,還在歐洲粒子研究中心(CERN)的 Tim Berners-Lee 研製出了三項突破性的數字通訊技術:可用於排列文本文件的 HTML 語言、鏈接文件的 HTTP 系統以及用來對特殊節點信息進行定位的 URL。這三項創新改變了整個通訊系統,使得信息可以更容易地穿越計算機網絡。而在1993年,Berners-Lee 更是創建起萬維網聯盟(World Wide Web Consortium,簡稱 W3C),負責 Web 相關標準的制定。瀏覽器的普及和 W3C 的推進,使得 Web 上能夠訪問的資源逐漸豐富起來,然而此時 Web 的主要通訊仍是瀏覽器向服務器請求靜態 HTML 信息。html5

 

 

不過,同在 1993 年,CGI(Common Gateway Interface,通用網關接口)的出現帶動了 Web 上動態信息服務的蓬勃興起。CGI 定義了 Web 服務器與外部應用程序之間的通訊接口標準,Web 服務器能夠經過 CGI 執行外部程序,讓外部程序根據 Web 請求內容生成動態的內容。java

 

 

到了 1995 年,NetScape 公司設計的 JavaScript 被用做瀏覽器上運行腳本語言爲網頁增長動態性,不只可以作出很是酷的頁面動態效果,還能夠減小與服務器端的通訊開銷,而十年後,也就是 2005 年,當 Google 的崛起掀開了 Web 2.0 的大幕,應運而生的 AJAX 更使得 javascript 再次大放異彩。android

咱們知道,在 Web 應用中,用戶提交表單時就向 Web 服務器發送一個請求,服務器進行接收處理,並返回一個新的網頁,先後兩個頁面中的大部分 HTML 代碼每每是同樣的,由此也就形成了返回時帶寬資源的浪費。而 AJAX 應用僅向服務器發送並返回必要的數據,且在客戶端採用 JavaScript 處理來自服務器的響應,更新頁面的局部信息。這樣不只讓瀏覽器和服務器的數據交換大大減小,且客戶端也能夠更快速地響應用戶操做。算法

 

 

而到了移動互聯網時代,通訊技術標準化也就成爲了水到渠成的天然現象。在《蘋果終於入夥 WebRTC,新一代移動 Web 應用爆發路上還有哪些坑?》一文中,咱們曾談到的 WebRTC 標準即是典型案例之一。後端

在 2011 年之前,瀏覽器之間要想實現實時通訊,須要私有技術,其中大部分都是經過插件和客戶端來安裝使用。對於許多用戶而言,插件的下載、安裝和更新是一個複雜、繁瑣和容易出錯的操做。而對於開發人員來講,插件的調試、測試、部署、錯誤修復和維護一樣困難重重,且不提還涉及到一些受版權保護的技術,整合至關複雜。再者,不少時候,服務提供商很難說服用戶去安裝插件。瀏覽器

但這一兩頭吃力還不討好的局面就這樣被 Google 將 WebRTC 項目開源所打破。2011 年,WebRTC 基於 BSD 協議開源,同年,W3C 啓動 WebRTC 計劃,讓 WebRTC 成爲了 HTML5 標準的一部分(目前,該規範還在開發中)。服務器

另外一方面,在移動互聯網創業大潮涌動之時,很多創業者選擇從移動 SDK 切入,將實時通訊工具化,開發者及團隊無需顧及實時通訊背後繁瑣的技術原理與邏輯實現,只需在應用開發中集成相應的 SDK 便可輕鬆實現實時通訊功能。這方面的表明性企業可見聲網 Agora.io,其提供了一個極簡 SDK,讓開發者接入 SD-RTN™ 實時虛擬通訊網,在任何 App 和網站實現高質量的音頻通話、視頻通話、全互動直播。

同時,隨着網絡基礎設施到位、硬件配件發展成熟,以及 4G、Wi-Fi 的普及,用戶開始對更豐富的功能、場景有了更多的需求。譬如在當前人工智能如火如荼之時,諸多智能設備都集成了實時音視頻的功能,前文提到的小米 AI 音箱便是其中之一。

對此,聲網 Agora.io CEO 趙斌如此總結道:

中國互聯網發展迅猛,基礎雲服務、開源技術、html5、移動 SDK 等技術,讓中國的開發者能最快速地開發移動和網頁 App,與世界比肩。下一個風口,必定會是融合了實時通訊技術的應用。

那麼,在風口之上,實時通訊還存在哪些技術難點尚待徹底攻克?

接下來,咱們進行具體分析。

  • 網絡傳輸:現存的互聯網做爲冷戰時代的產物最先實際上是爲了用於保障美國通訊網絡,其在網絡傳輸方面的種種侷限也直接致使瞭如今的互聯網在大文件傳輸、實時傳輸方面的窒礙難行。而語/視頻通訊、直播連麥對實時性要求很是高,要求延遲低至幾百毫秒,所以,現存的互聯網並不能知足這種新型的實時應用場景。

  • 編解碼:傳統的編解碼算法,也非應用於複雜的互聯網實時場景的良選,就致使卡頓、模糊等不可用的狀況發生。

  • 硬件適配:在音視頻通話中,除了延遲,還有一個嚴重影響用戶體驗的問題 —— 回聲。所謂「回聲」,便是指本身的聲音傳到遠端再經過遠端的麥克風錄音傳回來。咱們須要經過信號處理算法來進行回聲消除,但因爲手機的音量控制是非線性的,不一樣的手機材質、手機殼會致使聲音傳導性有差別,設備種類差別致使算法不能普適。且Android 手機碎片化嚴重,也就直接致使了移動端適配工做量龐雜。

  • QoE 質量保障: 來自北歐的實時通訊數據測試公司 Callstats.io 曾分享過歐美市場實時通訊行業現狀的調研數據,基於公網的 WebRTC 通話中有 16% 通話質量不可接受。而實際狀況中,相似東南亞、中東這些基建不發達地區會糟糕得多。如何保障 RTC 服務的高連通性、高質量,也就成爲了 RTC 領域的一大技術難點。

想要從根源上解決這些問題,還須要先對 RTC 整個技術棧作個瞭解。

RTC 從功能流程上來說,包含了採集、編碼、先後處理、傳輸、解碼、緩衝、渲染等諸多環節,下圖是一個 RTC 通訊的粗略流程,每個細分環節還有更細分的技術模塊。好比在先後處理環節,有美顏、濾鏡、回聲消除、噪聲抑制等,採集有麥克風陣列等,編解碼有 VP八、VP九、H.264 等。

 

 

在這裏,來自聲網的技術專家分享了他們的實踐:

  • 經過專爲內容實時傳輸而設計的網絡架構 SD-RTN 解決網絡傳輸問題。在互聯網上不一樣地區的數據中心放置軟件組網單元,相互鏈接互相調度,在現有的公共互聯網基礎上構建一層新的虛擬網絡;
  • 針對互聯網信道的實時一對1、多人通信設計了專門的私有編解碼,以適應互聯網丟包、抖動、延遲等問題;

 

 

  • 將「免」適配和適配相互配合,依靠線上數據的反饋,判斷「免」的效果;
  • 基於大數據開發了可供開發者 7*24 查看的「實時數據監控平臺」。開發者能夠查看的每一個用戶的通話質量狀況,包括網路分佈、設備分佈、質量分佈、通話質量、接通率、通話分鐘數等。

值得一提的還有,很多開發者直接將 RTC 和 WebRTC 劃上了等號。實際上,WebRTC 是 Google 的一個專門針對網頁實時通訊的標準及開源項目,只提供了基礎的前端功能實現,包括編碼解碼和抖動緩衝等,開發者若要基於 WebRTC 開發商用項目,須要自行作服務端實現和部署,信令先後端選型實現部署,以及手機適配等一系列具體工做。除此以外,還要在可用性和高質量方面進行大量的改進和打磨,對自身開發能力的門檻要求很是高。而一個專業的 RTC 技術服務系統,除了涵蓋上述的通訊環節外,實際上還須要有解決互聯網不穩定性的專用通訊網絡,以及針對互聯網信道的高容忍度的音視頻信號處理算法。固然,常規雲服務的高可用、服務質量的保障和監控維護工具都只能算是一個專業服務商的基本模塊。

那麼,當實時通訊無處不在之時,咱們該怎麼作?

當各式智能硬件、移動應用以及 Web App 中的許多模塊都愈來愈依賴於音視頻技術,實時通訊已然成爲了全部行業的一大基礎設施,不只僅是在直播、遊戲這些泛娛樂行業,更滲透到在線醫療、教育、金融等領域。在不一樣場景下,推進着人們溝通互動方式的改變。

可是,就是這樣一個已與各個垂直行業進行深度融合需求龐大的技術領域,卻仍然匱乏核心技術高端人才。RTC 核心技術最需求的是通訊工程相關專業的人才,而這些專業的應屆畢業生此前就業通常集中於華爲、愛立信等傳統通訊行業廠商,也不具備 RTC 的經驗,通常都是工做後二次學習。開發者須要對實時通訊有更深層次的理解,創建起 RTC 技術體系,幫助本身在各個行業開拓創新的可能。


最後,對於想要進入 RTC 領域的開發者,推薦即將於 9 月 21 -22 日在北京萬豪酒店舉行的 RTC 2017 實時互聯網大會,主要有兩點:一是在於集結了實時通訊領域很是重量級的大咖,好比 WebRTC 標準之父、IETF 的參與者 Daniel C. Burnett,還有來自Google、聲網、Slack、Houseparty、Atlaissian、陌陌、花椒、熊貓等公司的技術專家,能夠在現場收穫實時通訊最新的第一手資源,同時也與講者們進行更深刻的溝通交流。其次,這一會議的分會場設置徹底圍繞 RTC 技術棧來,從底層到前端,從架構到編解碼,從移動開發到行業技術實踐,可以幫助全部想要學習 RTC 的開發者創建起學習架構體系。

 

http://blog.csdn.net/Byeweiyang/article/details/77164940

相關文章
相關標籤/搜索