直播間搭建的成功離不開基本的流媒體傳輸,隨著網(wǎng)絡(luò)技術(shù)的不斷提高,對音視頻傳輸?shù)馁|(zhì)量與速度要求也不斷提高,想做好一套直播系統(tǒng),推流與拉流的詳細(xì)過程原理你都知道嗎?
一、推流端
直播間搭建推流端即主播使用的終端設(shè)備。
1、iOS手機(jī)端。
2、Android手機(jī)端。
3、PC電腦端。
二、推流的過程
1.通過攝像頭或錄屏功能進(jìn)行視頻采集用于直播間搭建。
2.通過話筒進(jìn)行音頻采集,音頻原始數(shù)據(jù)格式:PCM。
3.將視頻文件編碼,視頻格式從YUV(RGB)變?yōu)镠.264(H.265)。
將音頻文件編碼,視頻格式從YUV(RGB)變?yōu)镠.264(H.265)。
4.將音頻文件編碼,音頻格式從PCM變?yōu)锳AC。
5.將視頰與音頻文件編碼為有“流媒體”特性的多媒體容器格式(Multimedia Container Format),此時音頰和視頻(H.264和AAC)結(jié)合成了FLV或TS或RTMP Packet,這要視傳輸協(xié)議的規(guī)定而定)。
6.選擇一種向服務(wù)器推流的協(xié)議(“流”即“有流媒體特性的多媒體容器格式的文件”),應(yīng)用層協(xié)議:HLS;RTSP;RTMP,傳輸層協(xié)議:RTCP、RTP,網(wǎng)絡(luò)層協(xié)議:RSVP。
7.傳入推流地址(URL)來定位我們的推流目標(biāo)(即將流媒體發(fā)送給「誰」)然后開始推流,直播間搭建中比如你在斗魚當(dāng)主播,OBS中的推流地址就寫斗魚的,你要是在六間房當(dāng)程序員,程序中默認(rèn)的推流地址就寫六間房的。
三、服務(wù)器
1、服務(wù)器在下不是很熟悉,簡要說一下其最基木功能:生成拉流URL(用戶可以使用該URL拉流,從而觀看直播)。
2、并且服務(wù)器還需要有其他功能:如轉(zhuǎn)碼、錄制、截圖、鑒黃。
四、拉流
1、直播間搭建通過某種渠道獲取拉流URL(或者叫播放URL),并選取一種從服務(wù)器拉流的協(xié)議,然后開始拉流應(yīng)用層協(xié)議:HLS;RTSP;RTMP,傳輸層協(xié)議:RTCP、RTP,網(wǎng)絡(luò)層協(xié)議:RSVP。
2、將處于「多媒體容器格式」的流解復(fù)用成為「視頻編碼格式」的視頰數(shù)據(jù)(如H.264)和「音頻編碼格式」的音頻數(shù)據(jù)(如AAC)。
3、使用硬解碼(GPU解碼+CPU輔助)或軟解碼(CPU解碼)解碼后視頻數(shù)據(jù)格式為YUV或RGB,音頻數(shù)據(jù)格式為PCM解碼后視頻數(shù)據(jù)格式為YUV或RGB,音頻數(shù)據(jù)格式為PCM。
4.執(zhí)行音畫同步操作。
5.將同步后的音頻(PCM)送到音頻輸出設(shè)備播放。
將同步后的視頻(YUV或RGB)送到視頻輸出設(shè)備播放。
上述就是關(guān)于直播間搭建會用到的關(guān)于推流和拉流的過程原理,看似復(fù)雜的操作步驟,實則都是為了數(shù)據(jù)傳輸?shù)姆€(wěn)定與完整,帶給用戶更加完美的體驗。
以上內(nèi)容為作者"云豹短視頻嘉興“ 原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任
聯(lián)系客服