anyRTC2020年 年終總結

前言

2020年註定是一個不平凡的一年,因爲疫情的原因,讓我們每個人的生活都受到了影響,春節假期延長、人員流動受限、各地延遲復工。好在利用現有技術、大人們在家辦公,學生們在家上網課,讓我們的生活恢復了正常。

回顧2020年,感覺就像按了加速鍵,在如此艱難的一年,我們每個人都奮力前行,用堅強的毅力堅守住自己的工作崗位,堅持到了最後,我們憑自己的實力贏得了別人的認可。anyRTC在這一年裏,也經歷了質的蛻變,從SDK架構的升級到官網的全面更新,並落實AI在音視頻場景中的應用等等。下面就讓我們一起回顧anyRTC在2020年的改變和升級。

1、SDK全新架構

SD-RTN 全球實時通信網

SD-RTN: SD-RTN(Software Defined Real-time Network) 軟件定義實時網,專爲雙向實時音視頻互動而設計。超高清音視頻的傳輸需要穩定的網絡和充足的帶寬,任何的網絡波動都會對音視頻質量造成影響。在實時通訊的場景下,如何高速地檢測網絡狀態並根據網絡狀態制定合適的抗性和傳輸策略,一直是學術界和業界的難題。我們的團隊具有豐富的學術界和業界經驗,爲此提供了能適應各種複雜場景的高品質高可靠性的解決方案。

系統採用分佈式、分層架構,利用數十萬個邊緣可控節點提供服務。它融合基礎網絡能力、CDN分發能力、媒體處理能力、MCU、多碼率的對齊和處理、壓縮和轉碼、SVC等能力。

擁塞控制:基於延遲和丟包擁塞控制算法,結合我們豐富的網絡狀態數據庫,提出了新的實時擁塞控制算法,在不同網絡場景下都能迅速給出可靠的帶寬預測。

損傷抗性:互聯網網絡不穩定因素有很多,我們的智能抗性算法可以在極低的延時下抵禦住各種突發性的網絡波動及網絡損傷,將有限資源的能力最大化,確保優質的播放體驗。

QoS/QoE最優化:在網絡帶寬受限的情況下,清晰度、流暢性和延時不可兼得。我們根據應用的上下文和網絡狀態,實時自動做出最優的取捨,讓最終用戶能獲得最好的體驗。

多人通訊流控:多人通訊環境,既要保證重要通話的清晰度,又要兼顧他人的體驗。我們使用了兩套策略:在決策空間有限的情況下使用人工智能進行流控;在更復雜的場景下提供基於主觀體驗調整策略。

網絡度量:網絡策略的制定離不開現網大量數據支持。我們有豐富的去隱私數據集用來提取和學習網絡的狀態,可以在離線場景下復現差網狀態,與在線場景下迅速判斷網絡狀態。

動態路由:網絡狀態變化多端,跨運營商、跨區域、跨國等多重複雜網絡環境,需要實時對網絡狀況進行檢測和調整;基於實時狀態數據進行分析和計算,獲取最優的傳輸線路。

全新網絡架構能端到端延遲平均在200ms左右;基於UDP私有協議傳輸,延時可控;能夠承受超強的抗丟包能力,80%的丟包能夠正常通話;超強網絡拓撲,單頻道人數可支撐1000W同時在線。

SDK 模塊化設計

SDK:它提供音視頻通信、消息通信、媒體處理控制等基礎能力。此外,我們面向不同的業務應用場景提供同一套SDK,包括視頻會議、直播連麥、視頻客服、低延時直播等SDK。

SDK採用模塊化設計,分爲網絡傳輸層、音視頻編解碼層、引擎API層。

接口模塊化設計:

核心方法:SDK的初始化以及加入房間的方法配置、離開房間等相關方法。

音頻核心方法:音頻模塊的相關配置:使用音頻模塊、禁用音頻模塊、是否發送自己的音頻、是否接收別人的音頻、音量設置等等。

視頻核心方法: 視頻模塊的相關配置:使用視頻模塊、禁用視頻模塊、是否發送自己的視頻、是否接收別人的視頻、本地採集分辨率、幀率設置等等。

視頻前處理及後處理: 視頻美顏、超分等相關功能。

音頻播放路由: 揚聲器管理。

耳返設置: 耳返設置管理。

多頻道管理: 一個用戶可以進入多個頻道。

屏幕共享: 屏幕共享相關管理,用戶可區域屏幕共享,也可以應用窗口共享,以及共享屏幕的聲音模塊等等。

音樂文件播放與混音: 播放音樂文件,以及對文件的狀態操作等。

變聲和混響: 男變女、女變男、大房間、KTV音效等設置。

CDN推流: 本地CDN推流和服務端CDN推流,滿足萬人頻道觀看的需要。

跨頻道流媒體轉發: 主播PK連麥場景的設置。

在線輸入媒體流: 適合一起看電影,觀看網絡攝像頭等場景的需求。

視頻雙流模式: 大小流無縫切換,多人互動場景下節省用戶流量以及減少設備性能消耗的必備功能。

通話前網絡檢測: 通話前檢測當前客戶端的上下行網絡。

視頻自採集自渲染: 當本地採集渲染無法滿足自身需求的時候,比如手機屏幕共享,需要使用第三方美顏等功能。

音頻自採集自渲染: 當本地採集渲染無法滿足自身需求的時候,比如變聲,自定義音頻輸出等功能。

直播水印: 對輸出的視頻進行加水印處理,防止視頻盜鏈。

等等。

各個模塊可參考API文檔

2、官網升級

2020年8月,anyRTC官網進行了一次全面的升級,從官網樣式,內容,到用戶後臺管理,都煥然一新。

anyRTC官網:https://www.anyrtc.io/

官網更加簡潔明瞭,即便是第一次瀏覽的用戶也能準確快速的找到所需的目標。新增首頁客服,可直接通過官網諮詢客服,線上客服體驗趨於完善。

用戶後臺管理中心新增監控大廳與用量統計,並進一步優化了費用中心,可供實時查看動態數據,調整運營方案,消費明細,讓客戶更放心,更安心。

  • 監控中心:後臺數據監控,版面升級,詳細高效查看數據。實時數據自動生成圖文,直觀展示數據,方便查看與統計。
  • 用量中心:自動生成圖文展示實時用量,可根據需求查看近段時間的用量統計數據,用量變化等,瞭解用量趨勢,提供運營方向的數據支持。
  • 費用中心:費用中心包括交易詳情、發票管理與賬單界面,可根據個人需要進行操作,賬單頁面可選擇月份查看對應月份的賬單信息。費用信息更直觀透明,易操作易理解。

3、文檔中心更新

如果把各位開發者想象成戰士,那麼文檔中心可以說是必不可少的彈藥。開發者們可以從文檔中心,瞭解到各個參數與接口。今年我們爲各個平臺、框架添加demo文檔,新增場景、功能簡介、開發注意事項等介紹,幫助不同水平的開發者更好的使用SDK。

同時anyRTC文檔中心,全面優化了UI,文檔內容更加全面、分類更加細緻。目前分爲六大類:語音通話、視頻通話、互動直播、實時消息、雲端錄製、anyRTC平臺。方便開發者們快速找到自己所需要的文檔,提升用戶體驗。

4、SDK升級

anyRTC Native SDK支持多頻道與人臉檢測

anyRTC Native SDK增加了對多頻道的支持,可以實現更多更復雜的實時互動場景。多頻道的典型場景就是超級小班課。超級小班課,是將互動大班課裏的學生進行分組,各組的學生會同時訂閱老師的主頻道Channel A和各自小班的頻道Channel(B, C … N),各小組內學生不僅可以接收老師教學的實時音視頻流,同時小組內成員彼此可見、可聊天,極大提高大班課的教學質量和學生體驗。多頻道功能可在單進程中實現,不僅降低了集成的複雜度,還減少對系統資源的消耗。anyRTC對進入的頻道數量不限制,單頻道同時上麥人數最大支持50人,觀看人數不限制。

增加人臉檢測功能,通過 enableFaceDetection 方法開啓人臉檢測後,SDK 會實時觸發 onFacePositionChanged 回調,向本地用戶報告檢測出的一系列結果,包括人臉距設備屏幕的距離。通過這個功能可以實現許多新的場景,比如在線教育場景下,可在檢測到學生距離屏幕過近後,發出提醒,保護用戶視力;如果檢測到學生不在攝像頭範圍內,則可以提醒老師該學生有可能“逃課”了。目前該功能僅支持 iOS、Android 平臺。

RTC SDK for WeChat

RTC SDK for WeChat是一個全新的SDK,能夠支持微信小程序實現如下場景:

1、視頻通話&語音通話

  • 視頻通話場景,支持 720P、1080P高清畫質。
  • 視頻通話場景,支持48kHz全頻帶,支持雙聲道。
  • 單個房間最多支持300人同時在線,最高支持30人同時發言。
  • 適用場景:1對1視頻通話、300人視頻會議、在線問診、遠程面試、視頻客服、在線狼人殺等。

2、互動直播&語音聊天室

  • 支持十萬人級別觀衆同時播放,播放延時低至1000ms。
  • 支持平滑上下麥,切換過程無需等待,主播延時小於300ms。
  • 適用場景:視頻低延時直播、十萬人互動課堂、視頻相親、在線教育、遠程培訓、超大型會議等。

RTC SDK for WeChat的優點是高效,簡潔,快速,易操作,而微信小程序更是將這個RTC SDK的這個優點發揮到了極致。

低門檻快速接入:僅需 2 行代碼即可跑通測試 Demo,10 行代碼完成通用能力接入。最快1分鐘即可從零開始快速搭建低延時、低卡頓、高品質的實時音視頻互動產品。同時支持 720P、1080P 高清畫質,60%丟包率可正常視頻。音頻方面支持 48kHz 採樣率,192kpbs 碼率,70%丟包率可正常語音,更有領先行業的3A 處理(回聲消除 AEC、自動噪聲抑制 ANS、自動增益控制 AGC),杜絕回聲和嘯叫,無損音質媲美純正 CD 效果。

總的來說RTC SDK for WeChat適用於各種互動的應用場景,使用該SDK開發成本低,開發週期短,基本和H5的開發難度差不多;很容易傳播和獲客,充分利用好微信的優質流量。

RTC新增自渲染

當默認的音視頻模塊無法滿足開發需求時,開發者可以使用外部渲染器對音視頻數據進行渲染。例如:

  • 將獲取到的原始音視頻數據傳入其他的音視頻渲染引擎。
  • 需自定義音視頻渲染方式,比如自定義渲染動畫等。
  • 當默認的渲染器被其他業務佔用時,爲避免音視頻服務與其它業務產生衝突,需使用外部渲染器對原始音視頻數據進行渲染。

功能介紹:

實時視頻傳輸過程中,anyRTC SDK 通常會啓動默認的視頻模塊進行採集和渲染。在以下場景中,你可能會發現默認的視頻模塊無法滿足開發需求:

  • app中已有自己的視頻模塊

  • 希望使用非 Camera 採集的視頻源,如錄屏數據

  • 需要使用自定義的美顏庫或有前處理庫

  • 某些視頻採集設備被系統獨佔。爲避免與其它業務產生衝突,需要靈活的設備管理策略

基於此,anyRTC SDK 支持使用自定義的視頻源或渲染器,實現相關場景。

數據流轉圖

當默認的音視頻模塊無法滿足開發需求時,開發者可以使用外部渲染器對音視頻數據進行渲染。例如:

  • 將獲取到的原始音視頻數據傳入其他的音視頻渲染引擎。
  • 需自定義音視頻渲染方式,比如自定義渲染動畫等。
  • 當默認的渲染器被其他業務佔用時,爲避免音視頻服務與其它業務產生衝突,需使用外部渲染器對原始音視頻數據進行渲染。

5、跨平臺覆蓋

跨平臺開發一直都是這幾年最重要的技術趨勢之一。跨平臺的框架每年都在更新,但是熱度卻從未降低。採用跨平臺開發技術讓軟件開發者幾乎可以用同一套代碼就爲不同平臺構建應用程序,節省了時間、人力,以及不必要的工作。2020年anyRTC新增了,uni-app移動端插件和Flutter移動端插件。在跨平臺覆蓋這方面anyRTC一直走在整個行業的前端。

  • uni-app移動端插件

anyRTC uni-app移動端插件目前適配了RTC和RTM SDK。uni-app 是一個使用 Vue.js 開發跨平臺應用的前端框架,開發者編寫一套代碼,可編譯到iOS、Android、H5、小程序等多個平臺。因爲擴展能力強,學習成本低,所以深受開發者們的喜愛。

uni-app 跨平臺SDK應用場景非常廣泛,比如在在線教育、在線金融、智能終端、移動執法和交通物流方面都有良好的應用。

anyRTC uni-app RTC SDK 集成指引及示例DEMO

參考地址:https://github.com/anyRTC/uni-app-SDK

anyRTC uni-app RTM SDK 集成指引及示例DEMO

參考地址:https://github.com/anyRTC/uni-app-rtm

  • Flutter移動端插件

anyRTC Flutter移動端插件目前適配了RTC和RTM SDK,開發者基於anyRTC Flutter SDK可以簡單高效的實現跨平臺音視頻和實時消息功能。

Flutter是Google一個新的用於構建跨平臺的手機App的SDK。寫一份代碼,在Android 和iOS平臺上都可以運行。Flutter的優勢是具備快速開發、富有表現力和靈活的UI、以及原生性能。

anyRTC Flutter SDK 集成指引及示例DEMO

參考地址:https://github.com/anyRTC/Flutter-SDK

anyRTC考慮到了用戶的應用創建了實時消息Flutter-RTM

參考地址:https://github.com/anyRTC/Flutter-RTM

到目前爲止anyRTC全平臺覆蓋,支持Windows、macOS、Android,iOS、Web、小程序等多平臺覆蓋、支持Flutter、APICloud、uni-app、Electron跨平臺開發。

6、anyRTC AI實驗室

當下,5G和AI時代已至,音視頻技術已經上升到一個全新的高度,新場景、新應用、新標準也必將出現。anyRTC緊跟時代的步伐,成立AI實驗室,將自身的平臺技術跟AI深度結合,全新架構了服務端和客戶端音視頻引擎-下一代音視頻SDK以及下一代音視頻引擎。

1、SD-RTN全球實時傳輸網

SD-RTN(Software Defined Real-time Network) 軟件定義實時網,專爲雙向實時音視頻互動而設計。

SD-RTN的優勢

高延時傳輸方案 SD-RTN
端到端單向延時 > 1s 端到端單向延時 < 400ms
基於 TCP 協議,延時不可控 基於 UDP 協議,延時可控
抗丟包能力差,在丟包 2% 時明顯卡頓,達到 30% 可能斷開連接 通過定製具有超強抗丟包能力,80% 丟包率也可通話
層層緩存,就近下發 基於自定義路由,選擇最優傳輸路徑,實時端到端傳輸
適用於單向直播、視頻點播等無互動需求場景 適用於互動課堂、互動直播、音視頻社交、遊戲對講等對實時互動高需求場景

SD-RTN是一種可承載任何點到點(peer-to-peer)實時數據傳輸需求的業務架構:只要調用開放的API,無論是實時視頻(會議、教育、直播、社交、監控、VR)、文件傳輸(短視頻、辦公)還是高速數據同步(遊戲、AI、IOT、物聯網)都可以很方便的接入SD-RTN的實時數據傳輸雲服務。

2、音頻處理模塊

核心技術效果對應與試聽

智能語音增強解決方案,集成了AI智能降噪、回聲消除、混響消除、自動增益等核心技術。該方案創新性地應用深度學習技術,實時分離語音和背景噪聲,清晰提取人聲,有效消除環境中的各類噪音,讓用戶暢享更清晰高效的在線音視頻通話體驗。

anyRTC自19年初成立AI實驗室以來,經過長達一年多的時間,收集公開語音數據資源,以及第三方提供的數據和自己的內部會議來訓練AI模型。噪音抑制功能將分析用戶的音頻輸入,並使用經過特殊訓練的深度神經網絡來減少背景聲音,例如鍵盤的敲擊聲、風扇產生的噪音等。目前我們anyRTC已經配備了全套工具和環境,我們現在已經自己採集了很多數據集,並且應用到了我們AI算法中。下面就是我們anyRTC在AI音頻模型中取得的成就:

  • 智能降噪:基於計算聽覺場景分析理論,應用深度學習技術,能夠在不依賴任何硬件的基礎上,實現將人聲和噪音分離,有效抑制環境中的各種噪音。
  • DHS深度嘯叫抑制:基於深度學習技術,智能阻斷聲反饋迴路,抑制嘯叫產生。有效解決實時遊戲、在線會議等多人實時通話場景下嘯叫問題。

anyRTC AI 降噪技術規劃的關鍵策略包括音頻通信核心體驗、聲音場景分類和處理、音頻痛點難點問題及差異化體驗,最終目標則是提升語音可懂度、自然度、舒適度。

3、視頻處理模塊

核心技術

最高支持 1080P,分辨率、碼率可自由切換,融合多種領先的視頻編碼處理算法,畫質更好、碼率更低,支持移動端實時超分,實現低分辨率視頻到高分辨率視頻的實時重建,全面提升源視頻畫質和分辨率。AI 輔助功能:支持實時暗光增強算法,即使在較暗的環境下,也能提供清晰、明亮的圖像。

anyRTC在其他領域也有所涉及:AI 智能傳輸,超分辨率,智能插幀,圖像增強等。

  • AI智能傳輸

    由於網絡傳輸線路上有丟包,接收的數據有失真,所以 AI 智能傳輸被用來做算法補償,提升傳輸質量。

  • 超分辨率

    實時通信視頻在接收端提高原有圖像的分辨率,得到高分辨率的圖像,該功能有效減少了網絡傳輸帶寬,爲移動端爲用戶帶來極致視頻體驗。

  • 智能插幀

    智能插幀是通過運動估算,計算出畫面中物體的運動軌跡,生成新的幀來進行插補。可以將普通常見的30fps進行智能插幀計算,可以獲得60fps的順滑視頻,讓眼睛看到的自然形象更爲自然。

  • 圖像增強

    圖象增強是數字圖象處理常用的技術之一。圖象增強技術的目的是爲了改進圖象的質量,以達到賞心悅目的效果。通常要完成的工作是除去圖象中的噪聲,使邊緣清晰以及突出圖象中的某些性質等。

7、開源demo

anyRTC目前官方維護的Github有兩個:

1、anyrtcIO:https://github.com/anyRTC-UseCase

只要是提供一些場景demo,比較有針對性。目前是提供一些場景demo,比較有針對性。比如語音開黑,聊天室,語音通話等場景。

2、anyRTCIO:https://github.com/anyRTC

提供了一些基礎的代碼示例,以及一部分由官方維護的面向跨平臺、第三方框架的 SDK 版本。

伴隨着互動場景的增加,以及產品功能的新增,anyRTC會繼續擴充GitHub資源庫,保證開發者們可以方便快捷的找到示例代碼。

8、推流

  • 旁路推流

直播連麥PK目前是目前非常火熱的一種直播方式,主播PK就是一個主播在直播時,可以對另一個直播間的主播發起挑戰。一旦挑戰接受,兩個直播間的主播就開始進行連麥互動,直播界面一分爲二,同時顯示兩個主播的畫面,兩方粉絲也會進入到同一個直播間中。

anyRTC提供以下兩種推流方法:

1、服務端旁路推流

  • 單主播模式

    適合Web網頁端直播的主播或者直播間無連麥需求的用戶

  • 多主播模式

    多人連麥直播時,推流到 CDN 需要開啓轉碼功能,將多路流合併爲一路流。CDN 觀衆通過該路流的 CDN 地址(URL)即可觀看連麥直播。

2、客戶端旁路推流

  • 單主播模式

    不調用setLiveTranscoding即可,SDK內部直接推流不在進行轉碼合流。

  • 多主播模式

    主播調用setLiveTranscoding進行本地轉碼推流,將多路流合併爲一路流。CDN 觀衆通過該路流的 CDN 地址(URL)即可觀看連麥直播。

優勢

1、用戶無需結算旁路推流的消費,可以在客戶端直接推流。

2、延遲小:主播端直接推流,減少了傳輸過程中的延遲損耗。

  • 輸入在線媒體流

輸入在線媒體流能可以將音視頻流作爲一個發送端輸入正在進行的直播房間。通過將正在播放的音視頻輸入到直播頻道中,主播和觀衆可以一起收聽/觀看該媒體流並實時互動。

輸入在線媒體流的應用場景十分廣泛,以下爲大家列舉出了一些;

1、直播視頻共享

比賽直播中,主播可以直接拉比賽的音視頻流,可以實現主播和觀衆一起看比賽,一起點評的功能。增加了主播與觀衆之間的互動性。

2、一起娛樂

在同一個直播間內,主播可以與觀衆一起看電影,聽音樂,打遊戲,並且可以實時交流討論。提供給用戶一種沉浸式的觀感。

3、無人機或網絡攝像頭視頻源

無人機或網絡攝像頭直接採集視頻,該視頻作爲在線媒體流輸入直播頻道中。

9、更多場景方案落地

伴隨着技術的不斷提升,更多的場景方案也逐漸落地實施。

  • 智能手錶

anyRTC爲多國兒童智能手錶廠商提供智能手錶視頻通話解決方案,在兒童手錶場景中,保障每一位小朋友與父母之間可以進行高質量、低功耗、低延時的實時互動交流。anyRTC爲智能手錶提供了輕量級視頻通話SDK。保證弱網的情況下可以正常通話,同時支持超清畫質與高音質,支持1080P 60FPS 超清視頻,48kHz全頻帶音頻編碼,優秀的3A算法。

  • 在線合唱

以往的合唱都是用戶開啓合唱功能之後先一個人和伴奏演唱,完成之後上傳,其他用戶可以使用這個已經有人聲的伴奏再唱一遍,實現“合唱”,而anyRTC要做到的合唱是兩位用戶同時在線唱歌,合唱的伴奏是同時通過網絡發送給兩位歌手的,而且兩位歌手在演唱的同時可以聽到彼此的聲音。anyRTC提供的在線合唱解決方案,保證用戶可以像在線下KTV一樣,有聲臨其境的感覺,極大的提高了用戶的體驗感。

  • 直播視頻共享

比賽直播中,主播可以直接拉比賽的音視頻流,可以實現主播和觀衆一起看比賽,一起點評的功能。增加了主播與觀衆之間的互動性。

疫情還未完全過去,我們還需要互相幫扶,砥礪前行。2020年充滿了複雜以及不確定性。面對這個快速發展的時代,我們能做的就是保持思考,堅持鑽研,茁壯成長。2021年,希望能與各位開發者繼續前行,共同進步。一起讓音視頻行業發展的更好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章