1 實時傳輸協議RTP與RTCPRTP(Real-time Transport Protocol)是用於Internet上針對多媒體資料流的一種傳輸協議。RTP由兩個緊密連結部分組成:RTP----傳送具有實時屬性的資料;RTP控制協議(RTCP)----監控服務質量並傳送正在進行的會話參與者的相關資訊。RTP協議是建立在UDP協議上的。RTP協議詳細說明了在網際網路上傳遞音訊和影片的標準資料包格式。RTP協議常用於流媒體系統(配合RTCP協議)、影片會議和影片電話系統(配合H.263或SIP)。RTP本身並沒有提供按時傳送機制或其他服務質量(QoS)保證,它依賴於底層服務去實現這一過程。RTP並不保證傳送或防止無序傳送,也不確定底層網路的可靠性。RTP實行有序傳送,RTP中的序列號允許接收方重組傳送方的包序列,同時序列號也能用於決定適當的包位置,例如:在影片解碼中,就不需要順序解碼。實時傳輸控制協議(Real-time Transport Control Protocol,RTCP)是實時傳輸協議(RTP)的一個姐妹協議。RTCP為RTP媒體流提供通道外控制。RTCP定期在流多媒體會話參加者之間傳輸控制資料。RTCP的主要功能是為RTP所提供的服務質量提供反饋。RTCP收集相關媒體連線的統計資訊,例如:傳輸位元組數,傳輸分組數,丟失分組數,時延抖動,單向和雙向網路延遲等等。網路應用程式可以利用RTCP所提供的資訊試圖提高服務質量,比如限制資訊流量或改用壓縮比較小的編解碼器。RTCP本身不提供資料加密或身份認證,其伴生協議SRTCP(安全實時傳輸控制協議)則可用於此類用途。
4 實時訊息傳輸協議RTMPRTMP(Real Time Messaging Protocol)是Adobe Systems公司為Flash播放器和伺服器之間音訊、影片和資料傳輸開發的開放協議。它有三種變種:(1)工作在TCP之上的明文協議,使用埠1935;(2)RTMPT封裝在HTTP請求之中,可穿越防火牆;(3)RTMPS類似RTMPT,但使用的是HTTPS連線。RTMP影片播放的特點:(1)RTMP協議是採用實時的流式傳輸,所以不會快取檔案到客戶端,這種特性說明使用者想下載RTMP協議下的影片是比較難的;(2)影片流可以隨便拖動,既可以從任意時間點向伺服器傳送請求進行播放,並不需要影片有關鍵幀。相比而言,HTTP協議下影片需要有關鍵幀才可以隨意拖動。(3)RTMP協議支援點播/回放(通俗點將就是支援把flv,f4v,mp4檔案放在RTMP伺服器,客戶端可以直接播放),直播(邊錄製影片邊播放)。RTMP環境的架設:因為該協議是adobe公司開發的,所以最初伺服器端架設的環境是FMS(Flash Media Server),該軟體為收費軟體,價格昂貴。後來,開源軟體red5的推出,使rtmp協議的架設成本大大縮小,但是在效能方面不如fms的穩定。此外,wowza雖然是收費的,但價格比較適中。
5 微軟媒體伺服器協議MMSMMS(Microsoft Media Server Protocol)是用來訪問並流式接收Window Media伺服器中.asf檔案的一種協議。MMS協議用於訪問Windows Media釋出點上的單播內容。MMS是連線Windows Media單播服務的預設方法。若觀眾在Windows Media Player中鍵入一個URL以連線內容,而不是透過超級連結訪問內容,則他們必須是MMS協議引用該流。MMS的預設埠是1755.
6 HLSHTTP Live Streaming(HLS)是蘋果公司實現的基於HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,主要應用於iOS系統。HLS點播是分段HTTP點播,不同在於它的分段非常小。要實現HLS點播,重點在於對媒體檔案分段,目前有不少開源工具可以使用。相對於常見的流媒體直播協議,HLS直播最大的不同在於,直播客戶端獲取到的並不是一個完整的資料流,HLS協議在伺服器端將直播資料流儲存為連續的、很短時長的媒體檔案(MPEG-TS格式),而客戶端則不斷的下載並播放這些小檔案,因為伺服器總是會將最新的直播資料生成新的小檔案,這樣客戶端只要不停的按順序播放從伺服器獲取到的檔案,就實現了直播。由此可見,基本上可以認為,HLS是以點播的技術方式實現直播。由於資料透過HTTP協議傳輸,所以完全不用考慮防火牆或者代理的問題,而且分段檔案的時長很短,客戶端可以很快的選擇和切換位元速率,以適應不同頻寬條件下的播放。不過HLS的這種技術特點,決定了它的延遲一般總是會高於普通的流媒體直播協議。如果文章對更多的朋友有益,請分享到朋友圈。【視音訊影象技術乾貨,流媒體、影象演算法、人工智慧、機器人技術探索,開源專案推薦,還有更多職場規劃】歡迎關注我的微信公眾號,公眾號新增DaveBobo,更多幹貨等著你喲~~~
常用的流媒體協議主要有HTTP漸進下載和基於RTSP/RTP的實時流媒體協議兩類。在流式傳輸的實現方案中,一般採用HTTP/TCP來傳輸控制資訊,而用RTP/UDP來傳輸實時多媒體資料。
1 實時傳輸協議RTP與RTCPRTP(Real-time Transport Protocol)是用於Internet上針對多媒體資料流的一種傳輸協議。RTP由兩個緊密連結部分組成:RTP----傳送具有實時屬性的資料;RTP控制協議(RTCP)----監控服務質量並傳送正在進行的會話參與者的相關資訊。RTP協議是建立在UDP協議上的。RTP協議詳細說明了在網際網路上傳遞音訊和影片的標準資料包格式。RTP協議常用於流媒體系統(配合RTCP協議)、影片會議和影片電話系統(配合H.263或SIP)。RTP本身並沒有提供按時傳送機制或其他服務質量(QoS)保證,它依賴於底層服務去實現這一過程。RTP並不保證傳送或防止無序傳送,也不確定底層網路的可靠性。RTP實行有序傳送,RTP中的序列號允許接收方重組傳送方的包序列,同時序列號也能用於決定適當的包位置,例如:在影片解碼中,就不需要順序解碼。實時傳輸控制協議(Real-time Transport Control Protocol,RTCP)是實時傳輸協議(RTP)的一個姐妹協議。RTCP為RTP媒體流提供通道外控制。RTCP定期在流多媒體會話參加者之間傳輸控制資料。RTCP的主要功能是為RTP所提供的服務質量提供反饋。RTCP收集相關媒體連線的統計資訊,例如:傳輸位元組數,傳輸分組數,丟失分組數,時延抖動,單向和雙向網路延遲等等。網路應用程式可以利用RTCP所提供的資訊試圖提高服務質量,比如限制資訊流量或改用壓縮比較小的編解碼器。RTCP本身不提供資料加密或身份認證,其伴生協議SRTCP(安全實時傳輸控制協議)則可用於此類用途。
2 實時流協議RTSPRTSP協議定義了一對多應用程式如何有效透過IP網路傳送多媒體資料。RTSP在體系結構上位於RTP和RTCP之上,它使用TCP或RTP完成資料傳輸。HTTP與RTSP相比,HTTP傳送HTML,而RTP傳送的是多媒體資料。HTTP請求由客戶機發出,伺服器做出響應;RTSP可以是雙向的,即客戶機和伺服器都可以發出請求。RTSP與RTP最大的區別在於:RTSP是一種雙向實時資料傳輸協議,它允許客戶端向伺服器端傳送請求,如回放、快進、倒退等操作。當然RTSP可基於RTP來傳送資料,還可以選擇TCP、UDP、組播UDP等通道來發送資料,具有很好的擴充套件性。它是一種類似於HTTP協議的網路應用協議。
3 資源預定協議RSVPRSVP即資源預訂協議,使用RSVP預留一部分網路資源(即頻寬),能在一定程度上為流媒體的傳輸提供QoS。RSVP、RTSP與RTP協議工作在不同的層次,如下圖所示。
4 實時訊息傳輸協議RTMPRTMP(Real Time Messaging Protocol)是Adobe Systems公司為Flash播放器和伺服器之間音訊、影片和資料傳輸開發的開放協議。它有三種變種:(1)工作在TCP之上的明文協議,使用埠1935;(2)RTMPT封裝在HTTP請求之中,可穿越防火牆;(3)RTMPS類似RTMPT,但使用的是HTTPS連線。RTMP影片播放的特點:(1)RTMP協議是採用實時的流式傳輸,所以不會快取檔案到客戶端,這種特性說明使用者想下載RTMP協議下的影片是比較難的;(2)影片流可以隨便拖動,既可以從任意時間點向伺服器傳送請求進行播放,並不需要影片有關鍵幀。相比而言,HTTP協議下影片需要有關鍵幀才可以隨意拖動。(3)RTMP協議支援點播/回放(通俗點將就是支援把flv,f4v,mp4檔案放在RTMP伺服器,客戶端可以直接播放),直播(邊錄製影片邊播放)。RTMP環境的架設:因為該協議是adobe公司開發的,所以最初伺服器端架設的環境是FMS(Flash Media Server),該軟體為收費軟體,價格昂貴。後來,開源軟體red5的推出,使rtmp協議的架設成本大大縮小,但是在效能方面不如fms的穩定。此外,wowza雖然是收費的,但價格比較適中。
5 微軟媒體伺服器協議MMSMMS(Microsoft Media Server Protocol)是用來訪問並流式接收Window Media伺服器中.asf檔案的一種協議。MMS協議用於訪問Windows Media釋出點上的單播內容。MMS是連線Windows Media單播服務的預設方法。若觀眾在Windows Media Player中鍵入一個URL以連線內容,而不是透過超級連結訪問內容,則他們必須是MMS協議引用該流。MMS的預設埠是1755.
6 HLSHTTP Live Streaming(HLS)是蘋果公司實現的基於HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,主要應用於iOS系統。HLS點播是分段HTTP點播,不同在於它的分段非常小。要實現HLS點播,重點在於對媒體檔案分段,目前有不少開源工具可以使用。相對於常見的流媒體直播協議,HLS直播最大的不同在於,直播客戶端獲取到的並不是一個完整的資料流,HLS協議在伺服器端將直播資料流儲存為連續的、很短時長的媒體檔案(MPEG-TS格式),而客戶端則不斷的下載並播放這些小檔案,因為伺服器總是會將最新的直播資料生成新的小檔案,這樣客戶端只要不停的按順序播放從伺服器獲取到的檔案,就實現了直播。由此可見,基本上可以認為,HLS是以點播的技術方式實現直播。由於資料透過HTTP協議傳輸,所以完全不用考慮防火牆或者代理的問題,而且分段檔案的時長很短,客戶端可以很快的選擇和切換位元速率,以適應不同頻寬條件下的播放。不過HLS的這種技術特點,決定了它的延遲一般總是會高於普通的流媒體直播協議。如果文章對更多的朋友有益,請分享到朋友圈。【視音訊影象技術乾貨,流媒體、影象演算法、人工智慧、機器人技術探索,開源專案推薦,還有更多職場規劃】歡迎關注我的微信公眾號,公眾號新增DaveBobo,更多幹貨等著你喲~~~