三種主流流媒體協議比較

一、介紹

在流媒體協議中,常用的流媒體協議主要有 HTTP協議,RTSP協議和RTMP協議。
在國內視頻網站多采用HTTP+MP4或者HTTP+FLV協議傳輸視頻,而國外使用RTMP,RTSP等專門的流媒體格式。

二、協議介紹

1、HTTP協議:

HTTP的視頻協議,主要是在互聯網普及之後。在互聯網上看視頻的需求下形成的。
最初的HTTP視頻協議,沒有任何特別之處,就是通用的HTTP文件漸進式下載。本質就是下載視頻文件,而利用視頻文件本身的特點,就是存在頭部信息,和部分視頻幀數據,就完全可以解碼播放了。顯然這種方式需要將視頻文件的頭部信息放在文件的前面。有些例如faststart工具,就是專門做這個功能的。
但是最爲原始的狀態下,視頻無法進行快進或者跳轉播放到文件尚未被下載到的部分。這個時候對HTTP協議提出了range-request的要求。這個目前幾乎所有HTTP的服務器都支持了。range-request,是請求文件的部分數據,指定偏移字節數。在視頻客戶端解析出視頻文件的頭部後,就可以判斷後續視頻相應的幀的位置了。或者根據碼率等信息,計算相應的爲位置。

優點:
HTTP Live Streaming 還有一個巨大優勢:自適應碼率流播(adaptive streaming)。效果就是客戶端會根據網絡狀況自動選擇不同碼率的視頻流,條件允許的情況下使用高碼率,網絡繁忙的時候使用低碼率,並且自動在二者間隨意切換。這對移動設備網絡狀況不穩定的情況下保障流暢播放非常有幫助。實現方法是服務器端提供多碼率視頻流,並且在列表文件中註明,播放器根據播放進度和下載速度自動調整。使用起來也非常簡單。
缺點:
實時性相對較差,直播的時候延遲比較高。

2、RTSP協議:

用於Internet上針對多媒體數據流的一種傳輸協議,是TCP/IP協議體系中的一個應用層協議,RTSP在體系結構上位於RTP和RTCP之上,它使用TCP或UDP完成數據傳輸,該協議定義了一對多應用程序如何有效地通過IP網絡傳送多媒體數據。
本協議是最早的視頻傳輸協議。其中RTSP協議用於視頻點播的會話控制,例如發起點播請求的SETUP請求,進行具體播放操作的PLAY、PAUSE請求,視頻的跳轉也是通過PLAY請求的參數支持的。

優點:
RTSP協議族的優勢,在於可以控制到視頻幀,因此可以承載實時性很高的應用。這個優點是相對於HTTP方式的最大優點。H.323視頻會議協議,底層一般採用RTSP協議。RTSP協議族的複雜度主要集中在服務器端,因爲服務器端需要parse視頻文件,seek到具體的視頻幀,而且可能還需要進行倍速播放(就是老舊的DVD帶的那種2倍速,4倍速播放的功能),倍速播放功能是RTSP協議獨有的,其他視頻協議都無法支持。
缺點:
就是服務器端的複雜度也比較高,實現起來也比較複雜。Ios端不支持該協議。

3、RTMP協議:

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

優點:
支持直播、點播
缺點:
需要專用的服務器。

三、協議對比

關於三個RTMP,RTSP,HTTP的對比:
1.RTMP是adobe的,RTSP是 android native支持,http協議。
2.RTMP和HTTP有adaptive streaming的技術,RTSP沒有
3.RTSP實時性是最好的,HTTP實時性比較差。
4.ios不支持rtsp,安卓支持。

四、總結

一般的點播和直播,http 已經足夠用了, http 服務器軟件成熟,一般用免費開源軟件做,沒有adobe 軟件的許可費用,使用的是http漸進式下載。
百度傳課通過抓包分析出是用http協議來實現的,使用的是http range request(區間請求

發佈了231 篇原創文章 · 獲贊 256 · 訪問量 145萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章