流媒體協議 基本知識

來源:互聯網
上載者:User

標籤:des   style   http   color   io   os   使用   ar   strong   

RTP          參考文檔  RFC3550/RFC3551

         Real-time Transport Protocol)是用於Internet上針對多媒體資料流的一種傳輸層協議。RTP協議詳細說明了在互連網上傳遞音頻和視頻的標準資料包格式。RTP協議常用於流媒體系統(配合RTCP協議),視頻會議和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為IP電話產業的技術基礎。RTP協議和RTP控制協議RTCP一起使用,而且它是建立在UDP協議上的。 

         RTP 本身並沒有提供按時發送機制或其它服務品質(QoS)保證,它依賴於低層服務去實現這一過程。 RTP 並不保證傳送或防止無序傳送,也不確定底層網路的可靠性。 RTP 實行有序傳送, RTP 中的序號允許接收方重組發送方的包序列,同時序號也能用於決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。

      RTP 由兩個緊密連結部分組成: RTP ― 傳送具有即時屬性的資料;RTP 控制協議(RTCP) ― 監控服務品質並傳送進行中的會話參與者的相關資訊。

RTCP

        即時傳輸控制通訊協定(Real-time Transport Control Protocol或RTP Control Protocol或簡寫RTCP)是即時傳輸協議(RTP)的一個姐妹協議。RTCP為RTP媒體流提供通道外(out-of-band)控制。RTCP本身並不傳輸資料,但和RTP一起協作將多媒體資料打包和發送。RTCP定期在流多媒體會話參與者之間傳輸控制資料。RTCP的主要功能是為RTP所提供的服務品質(Quality of Service)提供反饋。
        RTCP收集相關媒體串連的統計資訊,例如:傳輸位元組數,傳輸分組數,丟失分組數,jitter,單向和雙向網路延遲等等。網路應用程式可以利用RTCP所提供的資訊試圖提高服務品質,比如限制資訊流量或改用壓縮比較小的轉碼器。RTCP本身不提供資料加密或身份認證。SRTCP可以用於此類用途。

SRTP & SRTCP        參考文檔  RFC3711

        安全即時傳輸協議(Secure Real-time Transport Protocol或SRTP)是在即時傳輸協議(Real-time Transport Protocol或RTP)基礎上所定義的一個協議,旨在為單播和多播應用程式中的即時傳輸協議的資料提供加密、訊息認證、完整性保證和重放保護。它是由David Oran(思科)和Rolf Blom(愛立信)開發的,並最早由IETF於2004年3月作為RFC3711發布。
        由於即時傳輸協議和可以被用來控制即時傳輸協議的會話的即時傳輸控制通訊協定(RTP Control Protocol或RTCP)有著緊密的聯絡,安全即時傳輸協議同樣也有一個伴生協議,它被稱為安全即時傳輸控制通訊協定(Secure RTCP或SRTCP);安全即時傳輸控制通訊協定為即時傳輸控制通訊協定提供類似的與安全有關的特性,就像安全即時傳輸協議為即時傳輸協議提供的那些一樣。
        在使用即時傳輸協議或即時傳輸控制通訊協定時,使不使用安全即時傳輸協議或安全即時傳輸控制通訊協定是可選的;但即使使用了安全即時傳輸協議或安全即時傳輸控制通訊協定,所有它們提供的特性(如加密和認證)也都是可選的,這些特性可以被獨立地使用或禁用。唯一的例外是在使用安全即時傳輸控制通訊協定時,必須要用到其訊息認證特性。

RTSP

       參考文檔 RFC2326

        是由Real Networks和Netscape共同提出的。該協議定義了一對多應用程式如何有效地通過IP網路傳送多媒體資料。RTSP提供了一個可擴充架構,使即時資料,如音頻與視頻的受控、點播成為可能。資料來源包括現場資料與儲存在剪輯中的資料。該協議目的在於控制多個資料發送串連,為選擇發送通道,如UDP、多播UDP與TCP提供途徑,並為選擇基於RTP上發送機制提供方法。

        RTSP(Real Time Streaming Protocol)是用來控制聲音或影像的多媒體串流協議,並允許同時多個串流需求控制,傳輸時所用的網路通訊協定並不在其定義的範圍內,伺服器端可以自行選擇使用TCP或UDP來傳送串流內容,它的文法和運作跟HTTP 1.1類似,但並不特彆強調時間同步,所以比較能容忍網路延遲。而前面提到的允許同時多個串流需求控制(Multicast),除了可以降低伺服器端的網路用量,更進而支援多方視訊會議(Video Conference)。 因為與HTTP1.1的運作方式相似,所以Proxy 伺服器《Proxy》的快取功能《Cache》也同樣適用於RTSP,並因RTSP具有重新導向功能,可視實際負載情況來轉換提供服務的伺服器,以避免過大的負載集中於同一伺服器而造成延遲。

RTSP 和RTP的關係

       RTP不象http和ftp可完整的下載整個影視檔案,它是以固定的資料率在網路上發送資料,用戶端也是按照這種速度觀看影視檔案,當影視畫面播放過後,就不可以再重複播放,除非重新向伺服器端要求資料。

      RTSP與RTP最大的區別在於:RTSP是一種雙向即時資料傳輸協議,它允許用戶端向伺服器端發送請求,如回放、快進、倒退等操作。當然,RTSP可基於RTP來傳送資料,還可以選擇TCP、UDP、組播UDP等通道來發送資料,具有很好的擴充性。它時一種類似與http協議的網路應用程式層協議。目前碰到的一個應用:伺服器端即時採集、編碼並發送兩路視頻,用戶端接收並顯示兩路視頻。由於用戶端不必對視頻資料做任何回放、倒退等操作,可直接採用UDP+RTP+組播實現。


RTP:即時傳輸協議(Real-time Transport Protocol) 
RTP/RTCP是實際傳輸資料的協議 
RTP傳輸音頻/視頻資料,如果是PLAY,Server發送到Client端,如果是RECORD,可以由Client發送到Server 
整個RTP協議由兩個密切相關的部分組成:RTP資料協議和RTP控制協議(即RTCP) 
RTSP:即時資料流通訊協定(Real Time Streaming Protocol,RTSP) 
RTSP的請求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顧名思義可以知道起對話和控製作用 
RTSP的對話過程中SETUP可以確定RTP/RTCP使用的連接埠,PLAY/PAUSE/TEARDOWN可以開始或者停止RTP的發送,等等 
RTCP: 
RTP/RTCP是實際傳輸資料的協議 
RTCP包括Sender Report和Receiver Report,用來進行音頻/視頻的同步以及其他用途,是一種控制協議

SDP

        會話描述協議(SDP)為會話通知、會話邀請和其它形式的多媒體會話初始化等目的提供了多媒體會話描述。
       會話目錄用於協助多媒體會議的通告,並為會話參與者傳送相關設定資訊。SDP 即用於將這種資訊傳輸到接收端。SDP 完全是一種會話描述格式 ― 它不屬於傳輸協議 ― 它只使用不同的適當的傳輸協議,包括會話通知協議(SAP)、工作階段初始通訊協定(SIP)、即時資料流通訊協定(RTSP)、MIME 擴充協議的電子郵件以及超文字傳輸通訊協定 (HTTP)(HTTP)。

        SDP 的設計宗旨是通用性,它可以應用於大範圍的網路環境和應用程式,而不僅僅局限於組播會話目錄,但 SDP 不支援會話內容或媒體編碼的協商。
        在網際網路組播骨幹網(Mbone)中,會話目錄工具被用於通告多媒體會議,並為參與者傳送會議地址和參與者所需的會議特定工具資訊,這由 SDP 完成。SDP 串連好會話後,傳送足夠的資訊給會話參與者。SDP 資訊發送利用了會話通知協議(SAP),它周期性地組播通知數據包到已知組播地址和連接埠處。這些資訊是 UDP 資料包,其中包含 SAP 協議頭和文本有效載荷(text payload)。這裡文本有效載荷指的是 SDP 會話描述。此外資訊也可以通過電子郵件或 WWW (World Wide Web) 進行發送。

SDP 文本資訊包括:

  1. 會話名稱和意圖;
  2. 會話期間;
  3. 構成會話的媒體;
  4. 有關接收媒體的資訊(地址等)。
  5. 協議結構
SDP 資訊是文本資訊,採用 UTF-8 編 碼中的 ISO 10646 字元集。SDP 會話描述如下:(標註 * 符號的表示可選欄位):
v = (協議版本)
o = (所有者/建立者和工作階段識別項)
s = (會話名稱)
i = * (會話資訊)
u = * (URI 描述)
e = * (Email 地址)
p = * (電話號碼)
c = * (串連資訊 ― 如果包含在所有媒體中,則不需要該欄位)
b = * (頻寬資訊)

一個或更多時間描述(如下所示):
z = * (時間地區調整)
k = * (加密金鑰)
a = * (0 個或多個會話屬性行)
0個或多個媒體描述(如下所示)

時間描述
t = (會話啟用時間)
r = * (0或多次重複次數)

媒體描述
m = (媒體名稱和傳輸地址)
i = * (媒體標題)
c = * (串連資訊 — 如果包含在會話層則該欄位可選)
b = * (頻寬資訊)
k = * (加密金鑰)

a = * (0 個或多個會話屬性行)

RTMP/RTMPS

RTMP(Real Time Messaging Protocol)即時訊息傳送協議是Adobe Systems公司為Flash播放器和伺服器之間音頻、視頻和資料轉送 開發的開放協議。
它有三種變種:

1)工作在TCP之上的明文協議,使用連接埠1935;

2)RTMPT封裝在HTTP請求之中,可穿越防火牆;

3)RTMPS類似RTMPT,但使用的是HTTPS串連;

      RTMP協議(Real Time Messaging Protocol)是被Flash用於對象,視頻,音訊傳輸.這個協議建立在TCP協議或者輪詢HTTP協議之上.

      RTMP協議就像一個用來裝資料包的容器,這些資料既可以是AMF格式的資料,也可以是FLV中的視/音頻資料.一個單一的串連可以通過不同的通道傳輸多路網路流.這些通道中的包都是按照固定大小的包傳輸的.

mms

        MMS (Microsoft Media Server Protocol),中文“微軟媒體伺服器協議”,用來訪問併流式接收 Windows Media 伺服器中 .asf 檔案的一種協議。MMS 協議用於訪問 Windows Media 發布點上的單播內容。MMS 是串連 Windows Media 單播服務的預設方法。若觀眾在 Windows Media Player 中鍵入一個 URL 以串連內容,而不是通過超級連結訪問內容,則他們必須使用MMS 協議引用該流。MMS的預設埠(連接埠)是1755

        當使用 MMS 協議串連到發布點時,使用協議翻轉以獲得最佳串連。“協議翻轉”始於試圖通過 MMSU 串連用戶端。 MMSU 是 MMS 協議結合 UDP 資料傳送。如果 MMSU 串連不成功,則伺服器試圖使用 MMST。MMST 是 MMS 協議結合 TCP 資料傳送。
如果串連到編入索引的 .asf 檔案,想要快進、後退、暫停、開始和停止流,則必須使用 MMS。不能用 UNC 路徑快進或後退。若您從獨立的 Windows Media Player 串連到發布點,則必須指定單播內容的 URL。若內容在主發布點點播發布,則 URL 由伺服器名和 .asf 檔案名稱組成。例如:mms://windows_media_server/sample.asf。其中 windows_media_server 是 Windows Media 伺服器名,sample.asf 是您想要使之轉化為流的 .asf 檔案名稱。
若您有即時內容要通過廣播單播發布,則該 URL 由伺服器名和發布點別名組成。例如:mms://windows_media_server/LiveEvents。這裡 windows_media_server 是 Windows Media 伺服器名,而 LiveEvents 是發布點名

HLS

      HTTP Live Streaming(HLS)是蘋果公司(Apple Inc.)實現的基於HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,主要應用在iOS系統,為iOS裝置(如iPhone、iPad)提供音ApsaraVideo for Live和點播方案。HLS點播,基本上就是常見的分段HTTP點播,不同在於,它的分段非常小。

       相對於常見的流媒體直播協議,例如RTMP協議、RTSP協議、MMS協議等,HLS直播最大的不同在於,直播用戶端擷取到的,並不是一個完整的資料流。HLS協議在伺服器端將直播資料流儲存為連續的、很短時間長度的媒體檔案(MPEG-TS格式),而用戶端則不斷的下載並播放這些小檔案,因為伺服器端總是會將最新的直播資料產生新的小檔案,這樣用戶端只要不停的按順序播放從伺服器擷取到的檔案,就實現了直播。由此可見,基本上可以認為,HLS是以點播的技術方式來實現直播。由於資料通過HTTP協議傳輸,所以完全不用考慮防火牆或者代理的問題,而且分段檔案的時間長度很短,用戶端可以很快的選擇和切換碼率,以適應不同頻寬條件下的播放。不過HLS的這種技術特點,決定了它的延遲一般總是會高於普通的流媒體直播協議。 

     根據以上的瞭解要實現HTTP Live Streaming直播,需要研究並實現以下技術關鍵點

  1. 採集視頻源和音頻源的資料
  2. 對未經處理資料進行H264編碼和AAC編碼
  3. 視頻和音頻資料封裝為MPEG-TS包
  4. HLS分段建置原則及m3u8索引檔案
  5. HTTP傳輸協議

流媒體協議 基本知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.