- WebRTC音視頻實(shí)時(shí)互動(dòng)技術(shù):原理、實(shí)戰(zhàn)與源碼分析
- 李超編著
- 486字
- 2021-08-06 14:49:29
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ō),音頻采用了一條處理流程,視頻則采用了另外一條處理流程,它們之間并不相交。在音視頻處理中,我們一般稱每一路音頻或每一路視頻為一條軌。

圖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ì)交叉存放到一起的。
推薦閱讀
- Learning Cython Programming(Second Edition)
- Mastering Zabbix(Second Edition)
- JavaScript高效圖形編程
- Python數(shù)據(jù)分析入門(mén)與實(shí)戰(zhàn)
- INSTANT OpenCV Starter
- Windows系統(tǒng)管理與服務(wù)配置
- BeagleBone Media Center
- HTML5游戲開(kāi)發(fā)案例教程
- C#程序設(shè)計(jì)
- 高級(jí)語(yǔ)言程序設(shè)計(jì)(C語(yǔ)言版):基于計(jì)算思維能力培養(yǎng)
- 深入理解Android:Wi-Fi、NFC和GPS卷
- ASP.NET程序開(kāi)發(fā)范例寶典
- Building Wireless Sensor Networks Using Arduino
- Learning Modular Java Programming
- 精通MySQL 8(視頻教學(xué)版)