【轉載】 瞭解即時媒體的播放(RTP/RTCP 和 RTSP)

來源:互聯網
上載者:User

標籤:

http://blog.csdn.net/span76/article/details/12913307

 

離線媒體只是用 Http協議去讀取伺服器端檔案而已,而對於即時直播如何?, 這裡就要用到 RTP/RTCP協議了

RTP/RTCP

RTP是基於 UDP協議的, UDP不用建立串連,效率更高;但允許丟包, 這就要求在重新組裝媒體的時候多做些工作

RTP只是包裹內容資訊,而RTCP是交換控制資訊的,Qos是通過RTCP實現的

RTP中一個重要的概念是 session, 對於一個 audio stream 可以是一個session 但可以有多個 contributor, 也可以有多個監聽者, 比如網路電話

 

做即時視頻流,先用採集裝置,直接把視頻做成 H.264 的 NALu,而後通過 RTP打包,傳輸給用戶端

有一篇文就是介紹如何把 NALu 用RTP打包的

http://www.rosoo.net/a/201108/14896.html

 

 

 

RTSP

但還缺少一個環節, 應用程式對應的是 play, seek, pause, stop, 如何把應用指令和 RTP的傳輸結合起來.

RTSP正是為瞭解決這個問題產生的

RTSP是應用程式層的協議和 HTTP協議很相似,用戶端和伺服器通過傳遞文本,通知如何進行 RTP/RTCP資訊的互動

,我們可以看到 RTSP也可以不用 RTP, 而用TCP來實現流媒體傳遞

RTSP的 client 串連 server 多通過 SDP(會話描述協議)傳遞資訊

 

[html] view plaincopy 
  1. C -> S :   
  2.         DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 312   
  3.         Accept: application/sdp, application/rtsl, application/mheg  
  4.   
  5. S -> C :   
  6.         RTSP/1.0 200 312 OK   
  7.         Date: 23 Jan 1997 15:35:06 GMT   
  8.         Content-Type: application/sdp   
  9.         Content-Length: 376  
  10.   
  11.         v=0   
  12.         o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4   
  13.         s=SDP Seminar   
  14.         i=A Seminar on the session description protocol   
  15.         u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps   
  16.         e=[email protected] (Mark Handley)   
  17.         c=IN IP4 224.2.17.12/127   
  18.         t=2873397496 28973404696   
  19.         a=recvonly   
  20.         m=audio 3456 RTP/AVP 0   
  21.         m=video 2232 RTP/AVP 31   
  22.         m=whiteboard 32416 UDP WB   
  23.         a=orient:portrait  



 

   Session description
          v=   (protocol version)
          o=   (owner/creator and session identifier)
          s=   (session name)
          i=* (session information)
          u=* (URI of description)
          e=* (email address)
          p=* (phone number)
          c=* (connection information - not required if included in all media)
          b=* (zero or more bandwidth information lines)
          One or more time descriptions ("t=" and "r=" lines, see below)
          z=* (time zone adjustments)
          k=* (encryption key)
          a=* (zero or more session attribute lines)
          Zero or more media descriptions
通過這些資訊,client 就可以串連正確的 RTP session

關於RTMP和RTSP的區別

RTMP: RTM(Messaging)P 是 Adobe公司自己的規範,為Flash播放器和伺服器之間音頻、視頻和資料轉送開發的私人協議。

 

【轉載】 瞭解即時媒體的播放(RTP/RTCP 和 RTSP)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.