一、RTC業務簡單介紹
RTC(Real Time Communication)實時通信業務,目的是在裝置端實時的轉發音視訊多媒體資料,讓使用者能實時的進行音頻和視訊的會話。通信業務一般都有如下幾個部分組成:
• 呼叫信令:用于呼叫的應答和協商,主叫和被叫之間要協商是否建立呼叫、資料通道的連接配接參數、資料格式、資料類型等資訊,讓主叫和被叫之間對齊音頻編碼、視訊編碼的相關資訊,這樣才能進行音頻和視訊的編解碼-傳輸流程。。
• 資料傳輸:基于呼叫信令協商好的參數進行音視訊資料的采集-編碼-傳輸-解碼-展示。
• 資料傳輸控制:回報傳輸通道的情況,确認傳輸通道品質,同時音視訊同步參數。
實時通信業務基本上分為兩種形态:
點對點:通行雙發裝置具體直連的通道,在兩個裝置端之間直接處理信令呼叫和資料傳輸。主叫和被叫之前必須使用相同的音視訊編碼參數、音頻打包時長等資訊。采用的是對等的傳輸通道。

中心化交換:有兩個方式,隻是信令的中心化交換,信令和資料都中心化交換。
信令中心化交換,隻是通過伺服器控制呼叫信令的轉發,伺服器不參與音視訊資料傳輸。伺服器不需要投入很多資源,隻是管理裝置狀态、業務鑒權,音視訊資料的傳輸完全由裝置點對點完成。伺服器隻保證信令通道的QoS。
信令和資料都中心化交換:伺服器要負責信令的轉發,同時要負責所有音視訊資料的轉發。伺服器既要完成信令的轉發,還要負責音視訊資料的轉發,伺服器需要的資源随多媒體的采樣率、格式、分辨率變化。
三個方式的對比如下:
根據上面的簡單比對,可以看出在阿裡雲-IOT領域,全中心化交換方式是比較理想的RTC業務形态,因為:
• 基于雲建構RTC服務端,服務端資源可以彈性擴充,且可以友善、靈活的擴充服務端業務鍊路。
• IOT場景下,裝置端資源都比較有限,比較複雜的音頻多路合成、視訊轉碼、視訊畫質增強、視訊多路融合等功能很難內建,或內建會導緻裝置端成本大幅增加。
• 随着4G、5G的鋪開,雲規模的不斷擴大,流量價格在急劇降低,中心化交換引入的流量成本已經可以做到逐漸下降,直至低于裝置端增加成本(單裝置增加成本x裝置數量)。
• 把複雜的算法、視訊動态轉碼等功能上移給服務端,可以讓裝置端極度簡化,降低裝置端的開發難度,節省裝置端開發時間成本,特别是IOT場景下終端都比較“瘦”。上述功能上移到雲,可以通過大資料、AI等方式有效的提高算法、動态轉碼效率,整體提升RTC業務的效率和體驗。
二、HaaS RTC介紹
HaaS RTC 是基于阿裡IOT的HaaS平台搭建的實時音視訊通信端雲一體,軟硬體一體解決方案。主要目的是提供一條完整的裝置-雲-裝置的多媒體資訊實時傳遞通道。主要特點是:
• 信令+承載全覆寫:實時通信的信令面和承載面均已經實作,是完整的實時通信業務包。
• 端雲一體全覆寫:端側提供SDK友善內建,雲上服務成熟可用。
• 良好的裝置側功能擴充:基于類SIP私有信令可以友善的擴充出IM消息、系統待機-喚醒等各種功能。
• 靈活的服務側業務鍊擴充:基于阿裡雲強大的雲服務能力,可以在雲上友善的內建各種音視訊融合、畫質優化增強、音視訊實時轉儲、語音識别、圖像識别等擴充功能。
• 多種通信場景支援:1 VS 1,1 VS N, N vs N,音視訊鍊路(單、雙向)自由配置。
• 豐富的裝置形态支援:支援在手機、PC、Linux平台嵌入式裝置、AliOS Things平台物聯網裝置上內建。形成智能門禁、兒童手表、樓宇對講、智能安防IPC等多種産品-業務形态。在使用AliOS Things平台還可以實作裝置側資源極緻“瘦”身優化。
其組成部分如下:
• HaaS RTC 雲服務:是通信過程中信令面服務提供者,是提供使用者管理、使用者狀态監控、通信信令服務、業務管理等功能的服務服務端。
• 視訊雲:是通信過程中承載面的服務提供者,音視訊多媒體資料的彙聚、轉發中心。具備音視訊轉碼、融合、轉發、轉儲等基本功能,同時也可以根據客戶的需求在雲上擴充業務鍊。
• 裝置端:是音視訊通信的用戶端,其主要作用是通信資料的上傳包括音視訊資料的前端采集、編碼、上傳;通信資料的接收、解碼、展示。各類具備音視訊多媒體pipe line(資料采集和顯示),具備端雲網絡連接配接的IOT裝置均可以作為HaaS RTC的裝置端。
三、HaaS RTC裝置端架構
客戶內建HaaS RTC方案時主要的工作是裝置端的SDK內建,一個典型的HaaS RTC裝置端的架構如下:
• 底層作業系統:負責驅動硬體平台,提供作業系統層接口支援。
• 驅動架構:提供音視訊采集、編解碼相關裝置的驅動能、顯示渲染驅動能力;
• HAL:統一的硬體抽象層,給RTC音視訊業務架構提供統一的硬體驅動通路接口,屏蔽裝置驅動細節。
• RTC音視訊架構:負責RTC的信令面協定、承載面協定的處理、音視訊的實時傳輸接收、同時還可以擴充音頻3A算法、監控RTC業務相關的系統資源情況。