天天看點

流媒體協定簡介寫在開始

RTSP、RTMP、HTTP、HLS簡介

  • 寫在開始
    • RTSP
    • RTMP
    • HTTP
    • HLS

寫在開始

本文旨在整理學習過程中的一些總結心得體會,如有不正确情況歡迎指正,歡迎大家一起學習~

RTSP

RTSP協定

(1)是流媒體協定。

(2)RTSP協定是共有協定,并有專門機構做維護。.

(3)RTSP協定一般傳輸的是 ts、mp4 格式的流。

(4)RTSP傳輸一般需要 2-3 個通道,指令和資料通道分離。

RTMP

RTMP協定

(1)是流媒體協定。

(2)RTMP協定是 Adobe 的私有協定,未完全公開。

(3)RTMP協定一般傳輸的是 flv,f4v 格式流。

(4)RTMP一般在 TCP 1個通道上傳輸指令和資料。

HTTP

(1)不是是流媒體協定。

(2)HTTP協定是共有協定,并有專門機構做維護。

(3)HTTP協定沒有特定的傳輸流。

(4)HTTP傳輸一般需要 2-3 個通道,指令和資料通道分離。

HLS

HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基于HTTP的流媒體網絡傳輸協定。是蘋果公司QuickTime X和iPhone軟體系統的一部分。它的工作原理是把整個流分成一個個小的基于HTTP的檔案來下載下傳,每次隻下載下傳一些。當媒體流正在播放時,用戶端可以選擇從許多不同的備用源中以不同的速率下載下傳同樣的資源,允許流媒體會話适應不同的資料速率。在開始一個流媒體會話時,用戶端會下載下傳一個包含中繼資料的extended M3U (m3u8)playlist檔案,用于尋找可用的媒體流。

HLS隻請求基本的HTTP封包,與實時傳輸協定(RTP)不同,HLS可以穿過任何允許HTTP資料通過的防火牆或者代理伺服器。它也很容易使用内容分發網絡來傳輸媒體流。

(1)視訊的封裝格式是TS。

(2)視訊的編碼格式為H264,音頻編碼格式為MP3、AAC或者AC-3。

(3)除了TS視訊檔案本身,還定義了用來控制播放的m3u8檔案(文本檔案)。

而蘋果提出HLS這個協定目的就是為了解決RTMP存在的一些問題。比如RTMP協定不使用标準的HTTP接口傳輸資料,是以在一些特殊的網絡環境下可能被防火牆屏蔽掉。但是HLS由于使用的HTTP協定傳輸資料,不會遇到被防火牆屏蔽的情況。

另外于負載,RTMP是一種有狀态協定,很難對視訊伺服器進行平滑擴充,因為需要為每一個播放視訊流的用戶端維護狀态。而HLS基于無狀态協定(HTTP),用戶端隻是按照順序使用下載下傳存儲在伺服器的普通TS檔案,做負責均衡如同普通的HTTP檔案伺服器的負載均衡一樣簡單。

另外HLS協定本身實作了碼率自适應,不同帶寬的裝置可以自動切換到最适合自己碼率的視訊播放。

注意:采用HLS協定直播的視訊延遲時間無法下到10秒以下,而RTMP協定的延遲最低可以到3、4秒左右。是以說對直播延遲比較敏感的服務請慎用HLS

具體HLS詳細解析流程可參考 :https://www.jianshu.com/p/2ce402a485ca

繼續閱讀