1 背景
OPPO實時音視訊(OPPO Real-Time Communication ORTC),是我們推出一套低延時、高品質、跨平臺的音視訊互通解決方案,通過OPPO雲伺服器向開發者開放,提供多人音視訊通話、實時監控、應急指揮排程、互通直播、IOT萬物互融、雲遊戲等能力輸出。以往的音視訊通訊技術大多是基於SIP/H323的實現方案,本文提供一種融合方案,實現RTC與SIP的互聯互通,使得RTC能夠很輕易的實現與PSTN、SIP Trunk的對接,同時傳統的會議終端通過該方案也能輕易接入RTC系統。
2 ORTC簡介
ORTC萬物互連下的重要基礎設施,解決了不同平臺各色終端之間實時互連互通問題,為眾多產品提供實時音視訊通訊能力,目前已上線及計劃產品包括,小布視訊通話,遠端協助,小遊戲語音互動,雲遊戲,互動直播,小布會議,虛擬人,IOT等。
依託OPPO雲優質的節點資源,全網協同,動態智慧路由,區域中級,就近接入,層級扇出,全球連線的特點,ORTC提供超低延時,超高併發,超高可用的音視訊服務。
3 ORTC系統架構
ORTC是一款輸出實時通訊能力的PAAS雲服務產品,總體架構包含媒體服務、信令服務、監控服務、介面服務、端側接入SDK等。其中信令媒體是分離的,信令通過SLB和Redis實現分散式及智慧排程。媒體整體採用SFU架構,支援級聯,單個房間不同使用者可以分佈在多個媒體例項上。媒體支援合流錄製,音視訊流級聯到MCU上,可以進一步實現合流後的錄製、轉分發。音視訊傳輸上支援jitterbuffer、NACK、FIR、PLI, 音訊支援AGC、AEC、NS,FEC處理上音訊傳輸上下行均支援RED,視訊上行支援ULPFEC。端側SDK基於WebRTC的流程規範,所有的SDK均支援simulcast,支援實時字幕、語音激勵。ORTC是在OPPO全球混合雲這個強大底座平臺基礎上建立的一款高併發、低延時、跨平臺、高可用的RTC服務平臺。
4 SIP應用場景及架構
SIP的應用無處不在,無論是思科、華為、Polycom這些傳統會議廠商,還是海康、大華、宇視這些監控廠商,我們都能找到SIP的影子,而基於SIP的產品在傳統會議、監控等相關行業佔據著很大一塊市場。而5G及雲服務的興起,無疑會給傳統行業注入新的活力,賦予其革新的動力,因為它不僅給傳統行業大大降低成本,還會提升其效率及服務體驗。舉個例子,高速的監控如果上雲端儲存上會節省一大筆的開銷,而隨時隨地都能實時的看到監控畫面並與之互動無疑也是監管部門及使用者喜聞樂見的。這些能力都是RTC能夠提供的,然而直接上RTC的話,無疑會給客戶帶去翻天覆地的改造,這也是大多數企業使用者所不能接受的,他們樂見的是平滑的無縫的升級切換,而要做到這些就需要進行RTC與SIP的互聯互通,併為之深度融合定製相應的解決方案。
RTC雖然是實時通訊發展的必然,然後它也有依賴的靠山,那就是基礎的網路設施,由於全球各地區,甚至同一地區的不同使用地點,不同人流量,網路訊號都可能不同,造成基於純資料網路的應用無法很好的服務,而這時候基於PSTN的普通電話網或PTT無線對講機可能就展現出了其穩定可靠不掉線的特點,如果能把他們接入到RTC中無疑增強了RTC的抗弱網能力,擴充了其應用場景的範圍,而這些網路及裝置的接入也需要ORTC與SIP進行融通。
隨著萬物互聯的深入,網路的觸角延伸到了力所能及的智慧裝置,這也為RTC提供了更廣闊的使用場景,這些裝置平時可能對可靠性要求不高,偶爾掉線也能接受;或者說他們可能就沒有直接接入網際網路,接入的是獨立的網路,比如智慧社群的門鈴,老人的手環,兒童的手錶等IOT裝置,其對應緊急被叫端的APP可能不是實時線上狀態,這時候要取得和他們的緊急聯絡就需要藉助於SIP外呼PSTN/LTE網路的普通電話。
而以上這些都對RTC與SIP的融合提出了需求,而要想把RTC做強做大做成音視訊通訊的基礎設施,同時能提供各種協議的接入能力也是對ORTC的基本要求。
在上面的架構中,藉助於SIP閘道器及SIP媒體伺服器,實現了RTC服務與外部基於標準SIP協議的PSTN網路或SIP中繼的無縫銜接。
在ORTC與SIP的對接過程中,ORTC內部的架構是相對獨立的,經過SIP閘道器處理後SIP協議將會實現與WebRTC信令協議的對映轉換,媒體流則通過標準的RTP/RTCP進行傳輸控制,而接入的SIP終端,也將被偽裝成一個虛擬的WebRTC Client入會。
雖然從架構上看,ORTC到SIP只需實現信令控制和媒體傳輸就大功告成了,然後在實施過程上,要考慮的實現細節還有很多,這其中包括轉碼、合流、安全傳輸、抗弱網特性、雙流輸出等。
5 ORTC-SIP 合流轉碼
ORTC作為一款通用的音視訊通訊解決方案,其必然要求具備支援各種型別音視訊編解碼的能力,其中包括了前沿的音視訊編解碼Lyra、AV1,而傳統SIP會議則大多使用相對保守通用的編解碼器,這就要求兩者對接時具備非對稱編解碼的能力,而作為切入方,ORTC就要求具備處理這種非對稱編碼的轉碼功能。同時如果要直接替換第三方的服務,而只保留對方終端的話,則對方終端要看到的ORTC的合流輸出,而不是現在基於SFU的多路輸出,因此ORTC需具備合流(MCU)能力,即我們的ORTC的媒體不能再僅僅是SFU,要同時具備SFU+MCU的能力輸出。
具體架構相容的實施如上圖所示,sip終端經過sip伺服器後,將於ORTC提供的虛擬sip終端實現點對點的音視訊通訊,這樣在兩端各自與sip伺服器完成背靠背的SDP協商之後,外部的媒體將轉發至ORTC內部的媒體接收端,經過pipe輸出至中心媒體節點後加入ORTC的智慧排程分發程式,同時ORTC所有接入方的媒體資料,也將匯聚到MCU,經其合流後分發排程給sip server,sip server做進一步的加密處理後轉發至sip終端。
同樣,經過MCU合流後的資料,也能旁路輸出,能夠以直播形式融合CDN系統進行分發,同時也具備雲端錄製能力。
6 ORTC-SIP抗弱網及安全控制
作為全球化運營的通訊解決方案,其所面臨的接入網路的基礎能力及使用場景可能千差萬別,有些地方網路訊號強,有些地方則較弱,有些地方可能擁堵較嚴重,這就要求我們的系統具備較強的抗弱網能力,而ORTC基於WebRTC規範實現的軟體,天然具備了較強的抗弱網能力。作為後來者的SIP要想完美的接入進來,則必然要求其不僅具備ARQ、FEC、FIR、PLI這些必備的抗弱網特性,還要具備較完善的位元速率、幀率動態自適應能力。
作為一款商用的實時通訊軟體,保密無疑是其必備的屬性,而ORTC基於wss+srtp的實現方案,給了使用者全鏈路的信令及資料安全傳輸保障。而作為外來戶的SIP服務,如果要完美的融入到ORTC上,則安全肯定也是必要條件。因此在信令接入上sip協議需要承載在TLS上,媒體資料要採用密級較高的SRTP傳輸,同時在服務部署上要做好相應的埠限制及防火牆防護。
7 ORTC-SIP 雙流控制
對於視訊會議、直播等場景,雙流的呈現已成為音視訊通訊的必備技能。如何更好、更靈活的進行雙流的切換及控制,也成為一項輸出能力的重要指標。在ORTC與SIP的整個架構中,我們提供了基於BFCP的雙流傳輸控制協議,很好的解決了多端雙流之間的來回自由切換。
8 ORTC-SIP叢集
隨著業務的不斷擴充套件與伸延,服務承載的併發也越來越大,而服務物件的特殊性,也要求系統具備較可靠的彈性擴縮容能力。服務高可靠可伸縮,涉及到的信令、sip、媒體、資料庫服務均需支援叢集及負載均衡。
ORTC內部藉助與叢集及智慧路由已經實現了叢集負載及服務的自動伸縮。而sip作為一個有狀態的協議,要實現可靠的註冊及呼叫上的負載均衡,則需要做不少工作。我們目前採用基於四層網路負載均衡外加內部服務橋接的方案,實現了端側的均衡註冊及業務分發,同時保障了在某臺服務掛起時接入的sip終端自動切換至其他服務節點,不影響正常業務,提供了負載均衡能力的同時提高了軟體的高可靠性。
9 展望
5G、AI技術的發展進一步推動了音視訊技術的演進,並對RTC提出了更高的要求,更低的延時、更高的位元速率、幀率,給大規模的雲上分析提供了可能,也反向拓寬了5G的應用場景,提升了AI的準確率,促進了雲端AI的應用。
上圖是一種採用視訊流測量心率的方法,其原理是基於皮膚中血液的微弱變化從而引發其對可見光吸收強弱的變化,進而利用濾波及離散傅立葉變換計算出心率值。將其與ORTC結合,就可以實現遠端會診的實時心率檢測。在工業及特殊行業領域結合5G及AI的應用場景還很多,而ORTC無疑將扮演越來越重要的基礎通訊角色,逐漸成為缺它不可的基礎必備設施。
在目前ORTC+SIP架構基礎上,我們可以進一步擴充套件形成ORTC+N的場景接入能力,融合更多的流媒體協議,聚合更多的媒體應用,使得我們的ORTC真正做到ALL IN ONE的基礎通訊能力平臺。
10 引用
[1] 網路負載均衡
http://cloud.oppoer.me/docsCe...
作者簡介
Sunny OPPO高階後端工程師
擁有10多年流媒體相關研發經驗,先後參與並主導過IPTV、電視聊天軟體、基於實時音視訊監控的應急指揮排程平臺、基於實時視訊的多模態微表情研判系統、RTC視訊會議等專案的研發。
獲取更多精彩內容,請掃碼關注[OPPO數智技術]公眾號