流媒體推流原理

我們知道一個完整的直播過程,包括採集、處理、編碼、封包、推流、傳輸、轉碼、分發、解碼、播放等,這一過程所採用的技術,我們也稱之爲“流媒體技術”。其中推流是指使用推流工具等內容抓取軟件把直播內容傳輸到服務器的過程。

▲微視播直播“流媒體技術”原理圖

 

 

在講解“推流”之前,我們先來說說採集,在商業活動領域,攝像機佔據主流地位,足以應付大部分場面,選擇帶有直播功能的攝像機更是事半功倍。再說,視頻採集後的處理、編碼。

如果把整個流媒體比喻成一個物流系統,那麼編解碼就是其中配貨和裝貨的過程,這個過程非常重要,它的速度和壓縮比對物流系統的意義非常大,影響物流系統的整體速度和成本。同樣,對流媒體傳輸來說,編碼也非常重要,它的編碼性能、編碼速度和編碼壓縮比會直接影響整個流媒體傳輸的用戶體驗和傳輸成本。

這就涉及到編碼器的選擇了,目前市面上直播編碼器有無線、有線等非常多選擇,根據不同場合選擇即可。

所以,推流也可以理解爲利用編碼器將視頻內容進行編碼後推到服務器的過程。經過H.264編碼壓縮之後,1080P 的 7 s 視頻大小隻有708K,10Mbps的帶寬僅僅需要500ms,可以滿足實時傳輸的需求,所以原始視頻勢必要經過視頻編碼。

直播“推流”需要推流協議,對音視頻數據使用傳輸協議進行封裝,變成流數據,這是直播背後原理最重要的部分,下面介紹目前主流的推送協議以及它們在直播領域的優缺點。

RTMP

RTMP 是 Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基於 TCP,是一個協議族,包括 RTMP 基本協議及 RTMPT/RTMPS/RTMPE 等多種變種。RTMP 是一種設計用來進行實時數據通信的網絡協議,主要用來在 Flash/AIR 平臺和支持 RTMP 協議的流媒體/交互服務器之間進行音視頻和數據通信。

RTMP 是目前主流的流媒體傳輸協議,廣泛用於直播領域,可以說市面上絕大多數的直播產品都採用了這個協議。

HLS

Http Live Streaming是由Apple公司定義的基於HTTP的流媒體實時傳輸協議。它的原理是將整個流分爲多個小的文件來下載,每次只下載若干個。服務器端會將最新的直播數據生成新的小文件,客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播。基本上,HLS是以點播的技術實現了直播的體驗。因爲每個小文件的時長很短,客戶端可以很快地切換碼率,以適應不同帶寬條件下的播放。

分段推送的技術特點,決定了HLS的延遲一般會高於普通的流媒體直播協議。

傳輸內容包括兩部分:一是M3U8描述文件,二是TS媒體文件。TS媒體文件中的視頻必須是H264編碼,音頻必須是AAC或MP3編碼。

WebRTC

WebRTC,名稱源自網頁即時通信(英語:Web Real-Time Communication)的縮寫,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的 API。目前主要應用於視頻會議和連麥中。

以下是三種主流協議的主要優缺點,可以按具體情況選擇:

▲協議優缺點(可放大看哦~)

簡單來說,通過編碼器編碼後的視頻內容根據不同的場景選擇合適的協議,推送到服務器上,服務器就可以對視頻流進行轉碼直播了。由於篇幅限制,我們將會對編碼器的具體使用單獨整理成一篇來講述,請持續關注我們哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章