RTP/RTSP/RTCP 协议详解
概念:
RTP英文名是Real-Time Stream Protocol,顧名思義是一種實時性很高的協議。這種協議和http協議很類似,都是純文本來發送消息的,不同的是rtp是有狀態的,http是沒有狀態的。怎么理解呢?http協議發了之后,連接就斷開了,而且下一次發與上一次沒有什么依賴關系,而RTP協議需要知道現在是個什么狀態,可以發送什么消息...
RTP用來為IP網上的語音、圖像、傳真等多種需要實時傳輸的多媒體數據提供端到端的實時傳輸服務。RTP為Internet上端到端的實時傳輸提供時間信息和流同步,但并不保證服務質量,服務質量由RTCP來提供。
?
RTP: Real-time Transport Protocol,實時傳輸協議,一般用于多媒體數據的傳輸。
RTCP: RTP Control Protocol,實時傳輸控制協議,同RTP一起用于數據傳輸的監視,控制功能。
RTSP: Real Time Streaming Protocol,實時流協議,用于多媒體數據流的控制,如播放,暫停等。
RTP/RTCP相對于底層傳輸層,和RTSP,SIP等上層協議一起可以實現視頻會議,視頻直播等應用。
為什么要搭配這些協議呢?RTP位于傳輸層(通常是UDP)之上,應用程序之下,實時語音、視頻數據經過模數轉換和壓縮編碼處理后,先送給RTP封裝成為RTP數據單元,RTP數據單元被封裝為UDP數據報,然后再向下遞交給IP封裝為IP數據包。這么說RTP是沒有保證傳輸成功的,
那怎么保證呢?就要用到rtcp。
RTCP消息含有已發送數據的丟包統計和網絡擁塞等信息,服務器可以利用這些信息動態的改變傳輸速率,甚至改變凈荷的類型。RTCP消息也被封裝為UDP數據報進行傳輸。
?
RTP的應用:
? ??RTP用于在單播或多播網絡中傳送實時數據。
1:簡單的多播音頻會議.語言通信通過一個多播地址和一對端口實現,一個用于音頻數據rtp,一個用于控制包rtcp
2:音頻視頻會議.這兩種媒體將分別在不同的RTP會話中傳送,同步的話就需要根據RTCP包中的計時信息了(network time protocol)
3:翻譯器或混合器:
?
曾經不知邊下邊播是怎么實現的,不知道現在為止你看了RTP后是怎么想的了?
當前在internet上傳送音頻和視頻等信息主要有兩種方式:一是下載,二是流式傳輸.
在下載情況下,我們都知道,要下完了,才能播放。在視頻會議中這顯然是不對的。流式傳輸才是實現流媒體的關鍵技術.
使用流式傳輸才能邊下載邊看流媒體節目。由于internet是基于分組傳輸的,就是一塊一塊的傳的。所以傳遞的包會有你先到,或者我先到的情況。
為了降低延遲和恢復數據包時序,在發送端,我們需要對數據進行盡可能的壓縮,在接收端,為了恢復時序,就需要一個緩沖區了。對緩沖的數據進行排序就可以恢復數據包時序了。
將排好序的的數據再放入播放緩沖,為什么還要一個播放緩沖呢?這是因為,如果網絡不理想(我們國家的網速,就不用貼數據了),我們得到排序好的數據包時間間隔是不等的。如果沒有播放緩沖,播放就會出現時延抖動.使用播放緩沖,在開始播放時,花費幾十秒鐘先將播放緩沖填滿,可以有效地消除時延抖動,從而在不太損失實時性的前提下實現流媒體的順暢播放.
轉載于:https://www.cnblogs.com/lifan3a/articles/7283811.html
總結
以上是生活随笔為你收集整理的RTP/RTSP/RTCP 协议详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统概念学习笔记 15 内存管理(一
- 下一篇: Linux文件基本操作管理