直播總體概覽
概述
- 直播的現(xiàn)狀
- 2016年乃秀,是一個(gè)直播年顽频。直播行業(yè)快速發(fā)展藤肢,同時(shí)也滋生了大大小小上千家相關(guān)的公司。
- 中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心發(fā)布的報(bào)告顯示糯景,截至今年6月嘁圈,我國(guó)網(wǎng)絡(luò)直播用戶規(guī)模達(dá)到3.25億,占網(wǎng)民總體的45.8%蟀淮。
- 直播的技術(shù)
- 直播技術(shù)概況來(lái)說(shuō)最住,可以分為 采集,前處理怠惶,編碼涨缚,傳輸,解碼策治,渲染 這幾個(gè)環(huán)節(jié)
技術(shù)整體概覽
-
圖例:
分步解析
音視頻采集
- 音視頻的采集是直播架構(gòu)的第一個(gè)環(huán)節(jié)脓魏,也是直播的視頻來(lái)源
- 采集的來(lái)源包括:
- PC端:屏幕攝像頭(攝像頭驅(qū)動(dòng)適配)
- iOS端:攝像頭采集(屏幕采集兰吟?)
- Android端:屏幕攝像頭采集(硬件過(guò)多,適配一堆坑)
前處理
- 使用美顏相機(jī)&美圖秀秀已經(jīng)是網(wǎng)絡(luò)發(fā)照片&發(fā)視頻必備技能了
- 80%的主播沒(méi)有美顏簡(jiǎn)直不能看(當(dāng)然還是有美女的)
- 不能看如何吸引用戶&觀眾
- 對(duì)視頻進(jìn)行美顏茂翔,已成標(biāo)配
- 處理主要包括揽祥,美顏、模糊效果檩电、水印等
- 總之就是讓人變美拄丰、變帥
- 各個(gè)平臺(tái)處理方式
- PC端:美顏鏡頭、一些美顏軟件
- iOS端:圖像處理庫(kù)是GPUImage俐末,提供了豐富的預(yù)處理效果料按,也可利用該庫(kù)自定義設(shè)計(jì)
- Android端:Google開源的grafika,是一個(gè)非常強(qiáng)大的圖形處理庫(kù)
編碼
- 不經(jīng)編碼的視頻非常龐大卓箫,存儲(chǔ)起來(lái)都麻煩载矿,更何況網(wǎng)絡(luò)傳輸
- 編碼通過(guò)壓縮音視頻數(shù)據(jù)來(lái)減少數(shù)據(jù)體積,方便音視頻數(shù)據(jù)的推流烹卒,拉流和存儲(chǔ)闷盔,能大大提高存儲(chǔ)傳輸效率
- 音視頻必須經(jīng)過(guò)壓縮編碼才能進(jìn)行存儲(chǔ)和傳輸
- 編碼方式:
- 硬編碼:使用非CPU進(jìn)行編碼,如顯卡GPU旅急、專用的DSP芯片等
- 軟編碼:使用CPU進(jìn)行編碼(手機(jī)容易發(fā)熱)
- 各個(gè)平臺(tái)處理:
- iOS端:硬件兼容性較好逢勾,可以直接進(jìn)行硬編碼
- Android端:硬編碼較難,難找到統(tǒng)一的庫(kù)兼容各個(gè)平臺(tái)(推薦使用軟編)
- 編碼標(biāo)準(zhǔn):
- 視頻編碼:H.265藐吮、H.264溺拱、VP8、VP9等
- 音頻編碼:AAC谣辞、Opus
傳輸
- 從推流端到服務(wù)端
- 數(shù)據(jù)經(jīng)過(guò)推流端采集和預(yù)處理迫摔,編碼之后推流到服務(wù)端
- 流傳輸就涉及到相應(yīng)的傳輸協(xié)議,最常用的協(xié)議是RTMP泥从、RTSP句占、HLS
- 搭建nginx+rtmp服務(wù)器進(jìn)行推流演示
流分發(fā)
- 音頻流推到服務(wù)器后,為了適配各個(gè)平臺(tái)端各種不同協(xié)議躯嫉,需要在服務(wù)端做一些流處理工作纱烘,比如轉(zhuǎn)碼成不同格式支持不同協(xié)議如 RTMP、HLS 和 FLV和敬,以適應(yīng)各個(gè)平臺(tái)
- 比如:iOS凹炸、Android戏阅、PC昼弟、網(wǎng)頁(yè)
- 甚至,為了配合一些運(yùn)營(yíng)需求奕筐,比如一些監(jiān)管部門的要求舱痘,我們?cè)诜?wù)端也提供了內(nèi)容識(shí)別如鑒黃的功能
播放
- 拉流獲取音視頻數(shù)據(jù)后变骡,需要通過(guò)解碼器解碼,渲染才能在播放器上播放
- 總體步驟概覽:
- 解協(xié)議:取出網(wǎng)絡(luò)傳輸過(guò)程中一些無(wú)用信息
- 解封裝:獲取到的是音頻&視頻放在一起的封裝文件
- 音視頻解碼:音視頻都是經(jīng)過(guò)壓縮編碼的內(nèi)容芭逝,解碼后才能進(jìn)行播放
- 音視頻同步:視頻&音頻文件需要通過(guò)播放
- 音視頻播放:聲卡&顯卡等對(duì)音視頻進(jìn)行播放