官术网_书友最值得收藏!

2.1.1 拆分音視頻模塊

接下來(lái),我們就對(duì)上面的直播客戶端架構(gòu)圖進(jìn)行逐步細(xì)化。細(xì)化的第一步就是拆分音視頻模塊。因?yàn)樵趯?shí)際開(kāi)發(fā)中,音頻與視頻的處理是完全獨(dú)立的,它們有各自的處理方式。如音頻有獨(dú)立的采集設(shè)備(聲卡)、獨(dú)立的播放設(shè)備(揚(yáng)聲器)、訪問(wèn)音頻設(shè)備的系統(tǒng)API、多種音頻編解碼器(如Opus、AAC、iLBC)等;同樣地,視頻也有自己的采集設(shè)備(攝像頭)、渲染設(shè)備(顯示器)、各種視頻編解碼器(如H264、VP8)等。細(xì)化后的直播客戶端架構(gòu)如圖2.2所示。

圖2.2中可以看到,細(xì)化后的架構(gòu)中,音頻的采集模塊與視頻的采集模塊是分開(kāi)的,而音頻編解碼模塊與視頻的編解碼模塊也是分開(kāi)的。也就是說(shuō),音頻采用了一條處理流程,視頻則采用了另外一條處理流程,它們之間并不相交。在音視頻處理中,我們一般稱每一路音頻或每一路視頻為一條軌 軌:取兩條軌永遠(yuǎn)不相交的意思,也就是說(shuō),音頻數(shù)據(jù)與視頻數(shù)據(jù)是永遠(yuǎn)不會(huì)交叉存放到一起的。

圖2.2 拆分音視頻的客戶端架構(gòu)

除此之外,我們還可以知道,自研音視頻直播客戶端要實(shí)現(xiàn)的模塊遠(yuǎn)不止5個(gè),至少應(yīng)該包括音頻采集、視頻采集、音頻編碼/音頻解碼、視頻編碼/視頻解碼、網(wǎng)絡(luò)傳輸、音頻播放以及視頻渲染這7個(gè)模塊。

[1] 軌:取兩條軌永遠(yuǎn)不相交的意思,也就是說(shuō),音頻數(shù)據(jù)與視頻數(shù)據(jù)是永遠(yuǎn)不會(huì)交叉存放到一起的。

主站蜘蛛池模板: 梨树县| 乐安县| 黑水县| 同德县| 四子王旗| 安丘市| 尼玛县| 阿勒泰市| 横山县| 兴和县| 翁牛特旗| 新乡市| 龙门县| 廉江市| 马山县| 合江县| 华安县| 朝阳县| 西城区| 拜泉县| 本溪| 彭山县| 炎陵县| 海盐县| 临西县| 英德市| 休宁县| 马龙县| 高青县| 嘉峪关市| 文成县| 锦屏县| 南昌县| 永昌县| 前郭尔| 临猗县| 兰考县| 丹凤县| 麻阳| 克山县| 诸城市|