什么是WebRTC NV
為了推動 WebRTC 的發展,IETF RTCWEB 工作組制定了 [RFC7478]。該文檔描述了擴展的應用場景,推動了額外 WebRTC API 的開發,以及由這些應用場景衍生出的需求。這些應用場景分為兩類:一類是對 [RFC7478] 中已經涵蓋的應用場景的增強,另一類是 WebRTC [WEBRTC] 在沒有擴展的情況下不支持的新應用場景。
延伸:場景化音視頻錄制
在使用WebRTC進行音視頻通信時,往往會有將整個過程錄制下來歸檔回看的需求。目前針對這類需求提供了一系列的實時云錄制的技術,所謂實時錄制即保證錄制的工作是與通信同時進行,當音視頻對話結束時便可回看。云錄制則意味著該錄制實際發生在服務器端而非客戶端,大大增強了穩定性。下面針對不同場景,提供了豐富可選的云錄制產品:
會議錄制場景
視頻會議、語音會議是WebRTC的典型場景。在必要時,會議中的某個參與者發起錄制請求,此時會議中所有參與者的音視頻將被錄制。根據用戶預定義的布局,與會者視頻將被展示在合成的畫布中。通過API,用戶可以輕松獲取到最終的mp4錄制文件進行回看。該方式不僅支持語音、攝像頭圖像的錄制,也支持諸如屏幕共享等展示性的內容錄制。
互動網頁錄制場景
在Web領域中,豐富的多媒體及3D展示成為了近兩年炙手可熱的技術。在互動娛樂、互動教育、互動醫療等領域,Web提供了不僅僅是語音圖像通信的內容,更有基于H5元素的動畫、白板、3D WebGL渲染等富媒體內容。基于Web技術的頁面錄制將瀏覽器的渲染技術搬運到服務端,提供了云錄制的可能。并將制定網頁的內容錄制為回放文件,大大提高了內容的觀賞性,還豐富了各類不同復雜場景的錄制需求。
探索:WebRTC NV的探索
WebRTC-NV有四大類:
1. WebRTC對等連接的擴展,具體包括WebRTC擴展、WebRTC-SVC和可插入流。要注意的是,網絡實時傳輸中心建議和所有依賴于實時傳輸中心連接的工作都需要RTCPeerConnection.UnifiedPlan,這是所有瀏覽器中默認的SDP語言。如果不首先支持UnifiedPlan,就不可能利用可插入流在您的應用程序中支持端到端加密。
VP9-SVC + insertable stream初探
目前WebRTC VP9-SVC結合網關策略,主要關注限速時的主觀體驗,尤其是多人音視頻場景下行限速的能力下限是否提升。相比VP8,VP9在壓縮效率上也有所提高,最終可以呈現出更高的質量。
2. 涉及不符合WebRTC-PC建議中所包含的實施或成熟度要求的功能,如WebRTC Identity、WebRTC Priority Control和WebRTC DSCP。
DSCP API的初探 + Wireless Edge Network(路由器加速)的初步驗證
DSCP可用于標記WebRTC數據,將其與網絡中其他數據區分開,即可在擁塞時傳出WebRTC數據包的優先級。而Wireless Edge Network則是充分發揮DSCP在QoS的作用,做到弱網下選擇性優先轉發,保障通話質量。
3. Capture的擴展,如MediaStreamTrack可插入流,Media Capture和Streams擴展以及MediaCapture深度流擴展。
Depth Camera -> 采集深度信息,可以三維建模,AR / VR實時互動
開發者們逐漸認識到AR / VR 技術并非孤島。在社交互動環節中加入AR / VR等實時互動功能,以提高用戶們體驗的趣味性。
4. 獨立規范:它不一定依賴于RTCPeerConnection或現有的Media Capture規范。WebRTC-ICE(目前已經作為獨立的規范實現)屬于這一類,W3C WebRTC工作組之外開發的API規范也屬于這一類,如WebTransport(W3C WebTransport工作組)、WebRTC-QUIC(ORTC工作組)和WebCodecades(WICG工作組)。
使用Webtransport + WebCodecs:
Webtransport 允許在瀏覽器和服務器之間發送和接收數據,并在頂部使用常見 API 來實現其下的可插拔協議,尤其是基于QUIC的情況。該 API 與 WebSocket 相似,同樣也是客戶端和服務器的雙向連接,但允許進一步減少客戶端和服務器之間的網絡通信延遲,并且還支持多個流、單向流、亂序和不可靠傳輸。使用場景包括使用不可靠且亂序的消息向服務器重復發送低延遲的游戲狀態、從服務器到客戶端的媒體片段的低延遲傳輸以及大多數邏輯在服務器上運行的云場景。
WebCodecs:用于訪問編碼幀內部,可使瀏覽器端做MoS分算法對齊Native相對簡單。