直播間搭建的成功離不開基本的流媒體傳輸,隨着網絡技術的不斷提高,對音視頻傳輸的質量與速度要求也不斷提高,想做好一套直播系統,推流與拉流的詳細過程原理你都知道嗎?

一、推流

直播間搭建推流端即主播使用的終端設備。

1、iOS手機端。

2、Android手機端。

3、PC電腦端。

  



二、推流的過程

1.通過攝像頭或錄屏功能進行視頻採集用於直播間搭建。

2.通過話筒進行音頻採集,音頻原始數據格式:PCM。

3.將視頻文件編碼,視頻格式從YUV(RGB)變爲H.264(H.265)。

將音頻文件編碼,視頻格式從YUV(RGB)變爲H.264(H.265)。

4.將音頻文件編碼,音頻格式從PCM變爲AAC。

5.將視頰與音頻文件編碼爲有“流媒體”特性的多媒體容器格式(Multimedia Container Format),此時音頰和視頻(H.264和AAC)結合成了FLV或TS或RTMP Packet,這要視傳輸協議的規定而定)。

6.選擇一種向服務器推流的協議(“流”即“有流媒體特性的多媒體容器格式的文件”),應用層協議:HLS;RTSP;RTMP,傳輸層協議:RTCP、RTP,網絡層協議:RSVP。

7.傳入推流地址(URL)來定位我們的推流目標(即將流媒體發送給「誰」)然後開始推流,直播間搭建比如你在鬥魚當主播,OBS中的推流地址就寫鬥魚的,你要是在六間房當程序員,程序中默認的推流地址就寫六間房的。

  



三、服務器

1、服務器在下不是很熟悉,簡要說一下其最基木功能:生成拉流URL(用戶可以使用該URL拉流,從而觀看直播)。

2、並且服務器還需要有其他功能:如轉碼、錄製、截圖、鑑黃。

四、拉流

1、直播間搭建通過某種渠道獲取拉流URL(或者叫播放URL),並選取一種從服務器拉流的協議,然後開始拉流應用層協議:HLS;RTSP;RTMP,傳輸層協議:RTCP、RTP,網絡層協議:RSVP。

2、將處於「多媒體容器格式」的流解複用成爲「視頻編碼格式」的視頰數據(如H.264)和「音頻編碼格式」的音頻數據(如AAC)。

3、使用硬解碼(GPU解碼+CPU輔助)或軟解碼(CPU解碼)解碼後視頻數據格式爲YUV或RGB,音頻數據格式爲PCM解碼後視頻數據格式爲YUV或RGB,音頻數據格式爲PCM。

  



4.執行音畫同步操作。

5.將同步後的音頻(PCM)送到音頻輸出設備播放。

將同步後的視頻(YUV或RGB)送到視頻輸出設備播放。

上述就是關於直播間搭建會用到的關於推流和拉流的過程原理,看似複雜的操作步驟,實則都是爲了數據傳輸的穩定與完整,帶給用戶更加完美的體驗。

以上內容爲作者"雲豹短視頻嘉興“ 原創,未經作者本人同意,禁止轉載,否則將追究相關法律責任

相關文章