圖片來源@視覺中國
文丨凡泰極客
如果你是一位工程師,想必聽過 WebRTC,就算沒有開發過;如果你是一位互聯網用戶,大概率使用過 WebRTC,雖然可能沒有意識到。在這個視頻為王的時代,我們漫談一下這個技術的來龍去脈以及一些有趣的應用。
文言「底」也表示疑問,是「何」、「什么」的意思。如南唐中主李璟在調侃馮延巳時所寫「風乍起,吹皺一池春水,干卿底事?」
如果說 20 世紀人類的書寫工具是筆、通訊方式是郵局寄信,那么 21 世紀初人類的書寫工具就變成鍵盤、通訊方式就是電子郵件/短信/即時通信聊天,而從現在開始的可見未來,手機攝像頭/VR 設備就是你的書寫記錄這個世界的工具、實時網絡通訊就是你的通訊方式。
視頻成了娛樂、學習、商務會議、社交、電商的載體,人們逐漸不再有耐心閱讀文字性的信息,現在連購買一件自安裝的家具,它都附帶二維碼,用戶只要一掃即打開安裝指南的視頻,再也不用反復研究紙質說明書里那往往畫的非常蹩腳的安裝圖。
視頻不僅是信息的展現方式,它從一部部的 mov、jpeg4、wmv(你硬盤上熟悉而又陌生的文件對不對?)變成一個個的播放器,再變成一個個的 App,然后又從這種單向的“錄制 ?上傳 ?下載 ? 找播放器打開 ? 播放”,變成了“現場錄制 ? 邊錄邊播 ? 實時收看”,再變成視頻與即時通訊工具、會議工具融合的雙向“錄制與播放”。
遠程視頻會議已經成為如今辦公的標配
傳說中的“實況直播”終于發展到一個“平民化”的階段。WebRTC,全稱 Web Real-Time Communication,就是這么一種基礎技術,它促進你用新的“筆”(智能視頻設備,例如你的手機)以影像而非文字方式去記錄與溝通。
它的奧妙在兩部分,自然就是:Web + RTC!這不是顯而易見的廢話嗎?還真不是… 但我們先聊一下 RTC,實時網絡通訊。
與 RTC 相比,WebRTC 僅僅是針對網頁實時通信所建立的標準,其中也只提供了基礎的前端功能進行實現。我們并不能簡單地將 WebRTC 與 RTC 劃等號。
WebRTC 強調“實時通訊網絡”。網絡早已無處不在了,但是否“實時”呢?大部分情況下不是。
首先,當前互聯網上最重要最基本的 HTTP 協議并不是為“實時”應用設計的,當你訪問一個網站的時候,你發起請求,等候網站的服務器把內容應答送回到你的 PC 或者手機設備,雖然這個應答可以非常快,但本質上是“請求-等候-應答”,這個“等候”,往往是一個不易控制的時間變量。
事實上,對快慢的感覺不能定義實時。網絡的低延遲、高帶寬固然是實時性的一些保障,但不等同于實時。
用大白話來描述的話,實時視頻的目標,是把正在某個地方A發生的人和事,以幾乎零延遲、不失真的方式“同步”到另外一個地方 B,讓 B 的人瞬間看到、聽到,并且反之亦然。人和事都是在不斷的變化中,視頻需要以“流”的方式源源不斷的向遠端推送更新,A、B 兩地的人雖然隔著十萬八千里,但是他們之間的網絡能把“視頻流”瞬間同步,讓彼此感覺近在咫尺,這就是“實時”。
那么現在我們的“實時通訊網絡”,距離真正的實時還有多遠?
上述問題的簡單答案是,有點遠。
我們對“實時”的追求是無限的,詳細一點的解釋,可以借最近熱炒的“元宇宙”作為例子。元宇宙,是一個“仿真”或者說“全真”的互聯網,它的特點之一,是利用極其強大的實時網絡,把物理世界里事物的無限細節信息化并瞬間傳播給接收者,使其通過一些特殊設備去復原這些信息并最大程度感受到在原發地事物的原本樣子。
這些信息能包括些什么呢?例如有空間感的立體聲效(Spatial Audio),讓你在一個線上會議室里能聽到講話的人在自己的什么方位,讓你在一個虛擬社交沙龍里能聽到輕微的背景音樂、左邊一群人的閑言碎語、右邊吧臺上酒保的調酒聲;例如能足以讓遠端設備渲染還原成逼真 3D 效果的人或物的特征數據,大至街景建筑小至毛發與臉部表情,讓你在虛擬空間里與其中的物品或人進行互動,像真的一樣; 假如有一天我們發明出能收集味道并信息化并在遠端通過刺激大腦皮層還原味道的設備,那么這又是一種需要傳送的數據。一句話,我們希望把任何物理距離以外的東西,色香味俱全的“同步”到自己的大腦。
如果說我們現在的互聯網是 2D 的話(即你只能面對一個屏幕這樣的二維平面去交互感知),元宇宙就是下一代 3D 互聯網,你“沉浸”在其中,你被實時送達的數據包裹,你的眼耳鼻舌身意“六根”都在里面。不要以為這是科幻,一些技術已經看的到摸得著,簡單者如 hubhub,復雜花哨者如 Google 的 Starline。
有興趣的小伙伴可以去看看 Metaverse Primer?
在 Matthew Ball 的“元宇宙入門”( Metaverse Primer)中,提到實時網絡是讓這一代沉浸式互聯網成為可能的8種最核心技術之一。海量數據的極低延遲實時傳輸能力,目前技術上還是有點遙遠。
雖然元宇宙還在“炒作曲線”的不知道哪個點上,可是一些實實在在的商業應用場景確實已經可以基于實時的視頻技術進行構建。除了大家熟悉的直播帶貨、娛樂互動,還有虛擬展會、實時教練培訓、遠程醫療(Telehealth)等等應用,相信任何線下的場景,只要技術允許,都會有產生線上仿真的一天。
WebRTC 的里的“Web”部分,并非簡單無意義的泛指,而是特指 Web Browser(瀏覽器)。這個標準以及實現它的技術,目前均已內置在各主流瀏覽器中,理論上讓任何用戶通過任何 PC、Mac、iPhone、Android 甚至車載系統的瀏覽器,即可發起彼此之間的直接視頻語音通訊。
也就是說,張三和李四,不管人在何方,理論上只要各自有一臺設備運行一個支持 HTML5 標準的瀏覽器,即可以無需經過“中間商”(互聯網大平臺、電信運營商等等)的通訊服務或渠道而建立這兩個瀏覽器之間的直接連接,實現傳說中的“點對點”(Peer-to-Peer)視頻通訊和文件分享!如果還有王五、陳六、何七幾位呢?歡迎加入,組成一個完全無障礙的、無服務器的、自組織的對等網絡,每個人的瀏覽器都是這個網絡的節點,共同進行視頻會議、文件分享。
有點像 VR Pro Max 的感覺
無中間商賺差價、無互聯網大平臺收集通訊各方的隱私數據,個人掌握自己的信息安全,也不依賴任何第三方,是不是忽然有一種自由飛翔的感覺?去中心化、點對點、對等網絡,讓我們回憶到互聯網美好的蠻荒時代 – BT、電驢、迅雷… ?the good old days…
可惜暫時來說,上述情形只是一種理想,因為互聯網的實際環境復雜,例如我們每個人的上網設備實際上都是在某個小區寬帶、移動運營商網絡、酒店 WiFi、公司局域網等等的后面,互聯網實際上是由無數這樣大大小小的局部網絡通過一系列的網絡設備、網絡協議進行互聯互通的,鏈路上信息的傳遞通過不同網絡的設備進行層層轉發和網絡地址/端口的“翻譯”轉換,最終才到達某個個體設備。
在深圳南山區科技園某公司的員工張某,如何讓其瀏覽器發現并連接北京朝陽區某小區的群眾李某的瀏覽器設備地址,從而建立起點對點直連?沒有直接辦法。
現有的技術實現方案,依然是中心化的,即張某與李某,不得不通過一個第三方的服務來“發現”彼此的地址,這個環節叫做 Signaling(信令)。
“去中心化”臨門一腳,暫時沒有現成技術,比較可惜。
有一些這方面的研究探索,待有志者進一步深入。
首先是關于技術本身的優化與擴展。例如有人提出利用 Kademlia(一種 DHT/分布式哈希表的算法,被以太坊、Storj 等區塊鏈用于組網)實現信令服務的去中心化。一篇 IEEE 的研究論文則探討了通過區塊鏈智能合約去提高 WebRTC 的安全性。
區塊鏈能借助WebRtc實現新的突破嗎
其次在應用方面,有一種方案提出,在疫情以來遠程辦公比重日益增加的情況下,出于企業信息安全、合規留痕、工作效率管控等等原因,需要對例如銷售、服務等各種發生在公司外部的遠程通訊活動進行記錄,依靠現有的基礎設施提供商的 CDR(Call Detail Record)難以確立單一可信來源、追蹤上下文,可以結合區塊鏈與智能合約,對 WebRTC 的通訊記錄數據出塊,實現單一可信源拷貝、不可篡改以及分布式存儲等好處。
很多金融機構的服務,例如開戶或者購買理財產品等,需要遠程視頻見證,也許是區塊鏈+WebRTC 的一個很好的應用場景。
講到未來,我們不得不先回顧一下這個技術的歷史。
2021 年 1 月 26 日,W3C 正式宣告 1.0 標準(“WebRTC 1.0:Real-Time Communication Between Browser”)。此前 WebRTC 經歷了整整 10 年的發展:2011-2014 是這個技術的探索期,大家的主要疑問是:我是否應該嘗試這個技術?2015-2019 是這個技術的成長期,隨著所有主流瀏覽器對 WebRTC 的支持,業界的問題變成:我該如何利用這個標準技術?有些什么應用場景?2020 年開始迄今,是這個技術應用的差異化時期。
WebRtc 的標識具有典型的 Google 配色
2020 年的新冠疫情,被認為對 WebRTC 技術產生直接促進性影響。視頻會議無處不在,Zoom 變成一個家喻戶曉的品牌(在國內市場自然是某些互聯網巨頭的相應品牌),可以說大眾對云端視頻會議的認知與接受度得到史無前例的加強。
同樣是 W3C 的標準,WebRTC 有沒有機會像 HTTP 之于“古典互聯網”一樣,成為下一代互聯網(無論你稱它為“實時通訊網絡”、“Web3.0”還是“元宇宙”)的基礎協議?回答這個問題,得了解一下 WebRTC 背后的真正“操盤手”。
操盤手是 Google – 它不僅推動 WebRTC 成為一個互聯網標準,也貢獻了大部分的底層開源技術。十年前 Google 干這事的動機是什么呢?大概有這么幾個原因:
WebRTC 標準與技術,最終贏得了 Firefox、Opera、Apple Safari、Microsoft Edge 以及各種 Chrome 變種瀏覽器的支持,從這個角度看,是取得巨大的成功。但比較諷刺的是,Google 自己的產品中涉及視頻的,似乎都沒有太取得商業上的成功。例如視頻會議方面,大家甚至都不太想起 Google 也有這方面的產品(而且質量不錯),反而 Google 的競爭者們不少都采用 WebRTC 卻取得競爭優勢。
WebRtc 在各瀏覽器中的支持程度超過 90%
當 WebRTC 成為公共標準后,Google自己貌似在開始與 WebRTC “脫鉤”,開始投資到另一個全新的技術棧:WebTransport + WebCodecs + WebAssembly。其中 WebTransport 主要基于 QUIC(HTTP/3的傳輸層協議),帶來更低的網絡延遲,更適合視頻類應用。WebCodecs 內置于瀏覽器,讓其有獨立的音視頻編碼解碼能力。WebAssembly,一個已經發展了相當長時間、進入成熟期的開源技術,它不僅讓瀏覽器渲染執行 JavaScript 代碼的性能獲得“原生”級別的提升,更重要的是它可能支持機器學習方面的結合。
如果 Google 作為 WebRTC 開源技術的主要推手,不再投資到其中,那么 WebRTC 1.0 之后,除了修修補補的小版本,還有持續發展的未來嗎?我們基于 WebRTC 打造應用,是否得擔心一下?
WebRTC 成為下一代互聯網的實時應用基石,估計有點懸,因為確實有潛在的更優解在那里。但是,對于應用開發者,未來幾年內,WebRTC可能就是我們的最優解,原因有三:
作為應用開發者,可以做的事情是應用場景的創意發掘與創新,是促進一個標準/技術繁榮有生命力的最佳保證。
Alexa,亞馬遜的智能音箱 Echo 里的智能助手,采用 WebRTC。
Facebook Messenger、Discord、Amazon Chime、Google Meet/Hangout/Duo,都是基于 WebRTC 的視頻通訊工具、視頻會議應用。
Clubhouse,2021 年現象級的語音社交工具。
Chrome Remote Desktop,遠程桌面工具。對于一般商務人士例如市場、銷售等等來說,可能過于技術,難以駕馭。但這種工具為什么沒有人深入研究借鑒一下,發展出實時遠程銷售培訓、實時遠程機器維修人員培訓、實時遠程醫療人員培訓這樣的東西呢?
最后必須特別推薦三個值得關注的 WebRTC 相關公司及其應用場景:
peer5.com
Peer 5,一個基于 WebRTC 的 eCDN(企業內容分發網絡),對內容進行網絡加速,充分利用到 WebRTC 內置在瀏覽器中的 P2P 能力。今年8月份被微軟收購。這是一個借力新標準、開源技術成就一家創業公司的成功故事。
hopin.com
Hopin,一家英國的獨角獸公司,采用 WebRTC 打造“虛擬活動平臺”,成立兩年成功融資 5 億 7 千萬美元、收購 4 家公司。
stadia.com
Stadia,這是 Google 嘗試進軍游戲行業的一大嘗試,能否成功不去討論。其有趣的地方是開啟 Cloud Gaming 這一領域,也可以稱之為“Gaming As A Service”(游戲即服務)或者“On-Demand Gaming”。怎么理解它呢,一直以來我們打 Xbox、任天堂的游戲,都是需要買一個游戲機,打不同的游戲就放進去不同的游戲光盤。 Cloud Gaming,就是你不需要本地的光盤了,游戲在云端運行,然后通過流媒體的方式傳輸到你的屏幕上,就像你在電視上點播電影一樣,但你用游戲手柄可以與“電影”互動。
你怎么看待 WebRtc 在未來的發展?歡迎與我們交流。
更多精彩內容,關注鈦媒體微信號(ID:taimeiti),或者下載鈦媒體App
2022-09-14 鈦媒體 App發布了 《星巴克加碼中國市場,未來三年要新增開3000家門店|鈦快訊》的文章
2022-08-11 鈦媒體 App發布了 《白云山麾下公司虛抬藥價“把戲”,被拆穿了》的文章
2022-07-06 鈦媒體 App發布了 《為了幫00后卷王找到工作,簡歷修改師們拼了》的文章
2022-07-06 鈦媒體 App發布了 《威尼斯向游客收“進城費”,國內城市如何借鑒?》的文章
2022-03-25 鈦媒體 App發布了 《蔚來2021年財報發布:年營收361億元,整車毛利率達到20.1%》的文章