基於HTTP構建的HLS流協議背後的原理

軟件工程師討論了基於HTTP構建的HLS流協議背後的原理,並允許視頻/音頻數據傳輸。

基於HTTP構建的HLS流協議背後的原理

HLS(HTTP直播)

HLS是一種基於HTTP的流媒體協議。

在開始使用協議之前,我們需要了解數字視頻的基本原理。有關視頻組件的基本知識,請參閱以下鏈接。

參考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Video/pktvideoaag.html

HLS的工作原理是將流分解為一系列小數據包。當播放流時,客戶端選擇包含以各種數據速率編碼的相同信息的多個不同的備選流。它允許流式會話從各種數據速率中獲取數據。

在流式傳輸會話開始時,HLS下載一個擴展名為M3U的文件(如果使用UTF-8編碼字符編碼格式,則下載m3u8)。它包含一個或多個媒體文件的特定位置。它通常用於將媒體播放器指向音頻和視頻源。

M3U文件是純文本文件,用於指定一個或多個媒體文件的位置。

參考:https: //www.lifewire.com/m3u-file-2621955

與基於UDP的RTP協議事務不同,HLS使用TCP上的基於HTTP的事務。

HTTP實時流使用Web服務器(網絡協議在萬維網上分發信息)來分發流內容。Web服務器的主要功能是存儲,處理和交付網頁或客戶端。

服務器將輸入視頻編碼並封裝成適當的格式以便傳送。然後通過將視頻分割成不同的文件來準備分發視頻。因此,視頻被轉換為碎片和索引文件。

音頻/視頻數據被封裝並格式化為PES包(打包的基本流(實際視頻,音頻數據),然後與TS包綁定。)稍後附加MPEG傳輸流。

不要將MJPEG與MOEG2TS混淆。MJPEG是具有視頻信息的編解碼器,而MOEG2TS是一個能夠傳輸流數據的容器。

注意:

編解碼器 - “編解碼器是一種編碼和解碼數據的方法,更具體地說,是一種用於壓縮數據的協議,尤其是視頻。”

容器 - “容器負責包裝,運輸和展示。容器通常用文件擴展名錶示。例如,MPEG4容器通常用.mp4文件類型表示。”

MPEG傳輸流(mjpeg2ts)是用於傳輸和存儲音頻和視頻數據的標準數字容器格式。它用於廣播系統,如數字視頻廣播(ATSC和IPTV)。

參考:https://en.wikipedia.org/wiki/MPEG_transport_stream


分享到:


相關文章: