雙向音視訊通信系統的用戶端是一個複雜的子系統,
它比起單向直播系統的推流用戶端,播放用戶端都要複雜,
因為它需要在采集本地音視訊推送到服務端的同時,還要從服務端接收音視訊資料進行播放。
而對于真正的實際生産用的用戶端來說,
它還需要有完整的業務邏輯實作,良好的健壯性,并适配各種平台,這更增加它的複雜度。
本文介紹了一個完整的用戶端的媒體引擎的基本架構,并對其核心工作原理做了介紹。
1. 用戶端媒體引擎架構
下圖是用戶端媒體引擎的架構圖:
平台接入層:是對整個SDK的封裝,以API的形式,提供給各個平台用戶端的業務層調用;
裝置适配層:是根據不同的平台,對硬體采集、渲染裝置的封裝。
媒體引擎層:它包含有三種資料流(即媒體流,日志流,信令流) 的處理,
而媒體流又分成視訊流和音頻流。
網絡傳輸層:它包含有三種協定的網絡資料傳輸,
使用基于UDP的RTP/RTCP協定來傳輸媒體資料,
使用基于PB的TCP協定來傳輸信令資料,
使用基于HTTP協定來傳輸日