標籤:
Warning: 本文原網頁 http://www.cnblogs.com/moonvan/archive/2011/09/11/2173448.html
在此基礎上略作修改,如有侵權,請告知刪除,謝謝!
流媒體協議
當前在Internet上傳輸音頻和視頻等資訊主要有兩種方式:下載和串流。
下載情況下,使用者需要先下載整個媒體檔案到本地,然後才能播放媒體檔案。
串流是指傳輸之前首先對多媒體進行預先處理(降低品質和高效壓縮),然後使用緩衝系統來保證資料連續正確地進行傳輸。使用串流可以邊下載邊觀看流媒體節目,可以實現網上直播、視頻會議等。
目前,支援流媒體傳輸的協議主要有:即時傳輸協議RTP(Real-time Transport Protocol)、即時傳輸控制通訊協定RTCP(Real-time
Transport Control Protocol)和即時資料流通訊協定RTSP(Real-time Streaming Protocol) 等,此類協議在IP/TCP協議中的位置所
示。
圖 1 流媒體協議在IP/TCP協議中的位置
圖 2 TCP/IP模型及各層對應協議
RTP/RTCP協議
RTP協議
RTP 為即時應用提供端到端的資料運輸,但不提供任何服務品質的保證,服務品質由RTCP來提供。
從應用開發人員的角度看,RTP 應當是應用程式層的一部分。在應用的發送端,開發人員必須編寫用 RTP 封裝分組的程式碼,然後把
RTP分組交給 UDP 插口介面。在接收端,RTP 分組通過 UDP 插口介面進入應用程式層後,還要利用開發人員編寫的程式碼從 RTP 分組
中把應用資料區塊提取出來。
RTP工作機制:當應用程式建立一個RTP會話時,應用程式將確定一對目的傳輸地址。目的傳輸地址由一個網路地址和一對連接埠組
成,有兩個連接埠:一個給RTP包,一個給RTCP包,使得RTP/RTCP資料能夠正確發送。
RTP資料發向偶數的UDP連接埠,而對應的控制訊號RTCP資料發向相鄰的奇數UDP連接埠(偶數的UDP連接埠+1),這樣就構成一個
UDP連接埠對。 RTP的發送過程如下,接收過程則相反。
1) RTP協議從上層接收流媒體資訊碼流(如H.263),封裝成RTP資料包;RTCP從上層接收控制資訊,封裝成RTCP控制包。
2) RTP將RTP 資料包發往UDP連接埠對中偶數連接埠;RTCP將RTCP控制包發往UDP連接埠對中的奇數連接埠。
RTP分組只包含RTP資料,而控制是由RTCP協議提供。RTP在1025到65535之間選擇一個未使用的偶數UDP連接埠號碼,而在同一次會
話中的RTCP則使用下一個奇數UDP連接埠號碼。連接埠號碼5004和5005分別用作RTP和RTCP的預設連接埠號碼。RTP分組的首部格式3所
示,其中前12個位元組是必須的。
圖 3 RTP分組的首部格式
RTCP協議
RTCP 協議的主要功能是:服務品質的監視與反饋、媒體間的同步,以及多播組中成員的標識。
RTCP 分組也使用 UDP 傳送,但RTCP 並不對聲音或視像分組進行封裝。可將多個 RTCP 分組封裝在一個 UDP 使用者資料報
中。RTCP 分組周期性地在網上送,它帶有發送端和接收端對服務品質的統計資訊報告。
RTCP包含五種分組類型:
1)結束分組 BYE 表示關閉一個資料流。
2)特定應用分組 APP 使應用程式能夠定義新的分組類型。
3)接收端報告分組 RR 用來使接收端周期性地向所有的點用多播方式進行報告。
4)發送端報告分組 SR 用來使發送端周期性地向所有接收端用多播方式進行報告。
5)源點描述分組 SDES 給出會話中參與者的描述。
RTP/RTCP協議