RTP/RTCP/RTSP

一.產生的背景java

隨着互連網的發展,人們已經不知足於傳統的HTTP,FTP和電子郵件等文本信息和服務,而對內容豐富多彩的多媒體信息,服務以及多媒體通訊方式提出了需求,包括聲音,圖象,圖形,視頻信息等等,而這些不但傳輸的數據量大並且對交互性和實時性要求很高。git

這時,基於HTTP的TCP協議沒法達到要求,故產生RTP協議來進行多媒體數據實時傳輸.github

clip_image001

RTP/RTCP,RTSP圖例編碼

clip_image002

協議關係圖.net

二.RTP/RTCP/RTSP協議與TCP/IP協議對比code

那麼,如今有個疑問是:爲何TCP/IP協議就不能知足多媒體通訊的要求呢?視頻

這是由於TCP有如下4個特色:blog

1.TCP重傳機制排序

2.TCP擁塞控制機制ip

3.TCP報文頭比UDP報文頭要大

4.TCP的啓動速度慢

RTP由IETF(Internet Engineering Task Force,互聯網工程任務組)的音頻/視頻傳輸工做組制定,主要實現實時數據的傳輸,它在包頭中提供編碼類型,包中數據的採樣時刻和數據包的序號,根據這些信息發送和接受方能夠協商編碼類型,能夠對接收到的數據包進行排序等工做;RTCP主要負責傳輸質量的監控以及傳送發送者的一些標誌信息。試驗和研究代表,RTP/RTCP所提出的實時數據的傳輸機制是行之有效的。

對比記憶

IP:數據傳輸

RTP:多媒體數據實時傳輸

TCP:保證數據傳輸可靠

RTCP:保證多媒體數據傳輸的可靠

三.RTP/RTCP,RTSP協議說明

RTP

Realtime Transport Potocol 實時傳輸協議

  • RTP/RTCP是實際傳輸數據的協議
  • RTP傳輸音頻/視頻數據,若是是PLAY,Server發送到Client端,若是是RECORD,能夠由Client發送到Server
  • 整個RTP協議由兩個密切相關的部分組成:RTP數據協議和RTP控制協議(即RTCP)

 

RTCP

Realtime Transport Control Potocol 實時傳輸控制協議

  • RTP/RTCP是實際傳輸數據的協議 
  • RTCP包括Sender Report和Receiver Report,用來進行音頻/視頻的同步以及其餘用途,是一種控制協議 

 

RTSP

RealTime Streaming Potocol 實時流協議

  • RTSP的請求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顧名思義能夠知道起對話和控制做用
  • RTSP的對話過程當中SETUP能夠肯定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN能夠開始或者中止RTP的發送,等等

  •  

代碼實現:

開源庫:

https://sourceforge.net/p/jlibrtp/code/HEAD/tree/jlibrtp/demo/org/jlibrtp/demo/SoundSenderDemo.java

githubdemo:https://github.com/loulei/RtpDemo_jlibrtp 

csdndemo:http://blog.csdn.net/ericfantastic/article/details/49361069

本站公眾號
   歡迎關注本站公眾號,獲取更多信息