RTSP協議基本分析

目錄

  • 一、介紹
  • 二、RTSP與HTTP
  • 三、RTSP推流基本過程
    • 1、OPTION 查詢服務器端可用方法
      • 1.1、Client 請求
      • 1.2、Server 回復
    • 2、ANNOUNCE 發送媒體描述信息
      • 2.1、Client 請求
      • 2.2、Server 回復
    • 3、SETUP建立RTSP會話
      • 3.1、Client 請求(視頻流)
      • 3.2、Server 回復(視頻流)
      • 3.3、Client 請求(音頻流)
      • 3.4、Server 回復(音頻流)
    • 4、RECORD請求傳送數據
      • 4.1、Client 請求
      • 4.2、Server 回復
    • 5、RTCP 播放控制、RTP視頻數據
      • 5.1、Client 發送(RTCP)
      • 5.2、Client 發送(RTP)
    • 6、RTCP 播放控制、RTP音頻數據
      • 6.1、Client 發送(RTCP)
      • 6.2、Client 發送(RTP)
    • 7、TEARDOWN關閉會話
      • 7.1、Client 請求
      • 7.2、Server 回復
  • 四、RTSP拉流基本過程
    • 1、OPTION 查詢服務器端可用方法
      • 1.1、Client 請求
      • 1.2、Server 回復
    • 2、DESCRIBE 獲取媒體描述信息
      • 2.1、Client 請求
      • 2.2、Server 回復
    • 3、SETUP建立RTSP會話
      • 3.1、Client 請求(視頻流)
      • 3.2、Server 回復(視頻流)
      • 3.3、Client 請求(音頻流)
      • 3.4、Server 回復(音頻流)
    • 4、PLAY請求開始傳送數據
      • 4.1、Client 請求
      • 4.2、Server 回復
    • 5、RTP數據傳送播放
      • 5.1、Server 發來 (視頻流)
      • 5.2、Server 發來 (音頻流)
    • 6、TEARDOWN關閉會話,退出

一、介紹

RTSP(Real-Time Stream Protocol )是一種基于文本的應用層協議,在語法及一些消息參數等方面,
RTSP協議與HTTP協議類似。
RTSP被用于建立的控制媒體流的傳輸,它為多媒體服務扮演“網絡遠程控制”的?色。盡管有時可以把
RTSP控制信息和媒體數據流交織在一起傳送,但一般情況RTSP本身并不用于轉送媒體流數據。媒體數據
的傳送可通過RTP/RTCP等協議來完成。
一次基本的RTSP操作過程是:首先,客戶端連接到流服務器并發送一個RTSP描述命令(DESCRIBE)。流
服務器通過一個SDP描述來進行反饋,反饋信息包括流數量、媒體類型等信息。客戶端再分析該SDP描
述,并為會話中的每一個流發送一個RTSP建立命令(SETUP),RTSP建立命令告訴服務器客戶端用于接收
媒體數據的端口。流媒體連接建立完成后,客戶端發送一個播放命令(PLAY),服務器就開始在UDP上傳送
媒體流(RTP包)到客戶端。 在播放過程中客戶端還可以向服務器發送命令來控制快進、快退和暫停等。
最后,客戶端可發送一個終止命令(TERADOWN)來結束流媒體會話。

二、RTSP與HTTP

  1. RTSP引入了幾種新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的協議標識符,RTSP
    為rtsp 1.0,HTTP為http 1.1。
  2. HTTP是無狀態的協議,而RTSP為每個會話保持狀態 session的概念。
  3. RTSP協議的客戶端和服務器端都可以發送Request請求,而在HTTP 協議中,只有客戶端能發送
    Request請求。
  4. 在RTSP協議中,載荷數據一般是通過帶外方式來傳送的(除了交織的情況),及通過RTP協議在不同的
    通道中來傳送載荷數據。而HTTP協議的載荷數據都是通過帶內方式傳送的,比如請求的網頁數據是在回應
    的消息體中攜帶的。
  5. 使用ISO 10646(UTF-8) 而不是ISO 8859-1,以配合當前HTML的國際化。
  6. RTSP使用URI請求時包含絕對URI。而由于歷史原因造成的向后兼容性問題,HTTP/1.1只在請求中包
    含絕對路徑,把主機名放入單獨的標題域中。

三、RTSP推流基本過程

1、OPTION 查詢服務器端可用方法

1.1、Client 請求

在這里插入圖片描述

1.2、Server 回復

在這里插入圖片描述

2、ANNOUNCE 發送媒體描述信息

2.1、Client 請求

在這里插入圖片描述

2.2、Server 回復

在這里插入圖片描述

3、SETUP建立RTSP會話

3.1、Client 請求(視頻流)

在這里插入圖片描述

3.2、Server 回復(視頻流)

在這里插入圖片描述

3.3、Client 請求(音頻流)

在這里插入圖片描述

3.4、Server 回復(音頻流)

在這里插入圖片描述

4、RECORD請求傳送數據

4.1、Client 請求

在這里插入圖片描述

4.2、Server 回復

在這里插入圖片描述

5、RTCP 播放控制、RTP視頻數據

5.1、Client 發送(RTCP)

在這里插入圖片描述

5.2、Client 發送(RTP)

在這里插入圖片描述

6、RTCP 播放控制、RTP音頻數據

6.1、Client 發送(RTCP)

在這里插入圖片描述

6.2、Client 發送(RTP)

在這里插入圖片描述

7、TEARDOWN關閉會話

7.1、Client 請求

在這里插入圖片描述

7.2、Server 回復

在這里插入圖片描述

四、RTSP拉流基本過程

1、OPTION 查詢服務器端可用方法

1.1、Client 請求

在這里插入圖片描述

1.2、Server 回復

在這里插入圖片描述

2、DESCRIBE 獲取媒體描述信息

2.1、Client 請求

在這里插入圖片描述

2.2、Server 回復

在這里插入圖片描述

3、SETUP建立RTSP會話

3.1、Client 請求(視頻流)

在這里插入圖片描述

3.2、Server 回復(視頻流)

在這里插入圖片描述

3.3、Client 請求(音頻流)

在這里插入圖片描述

3.4、Server 回復(音頻流)

在這里插入圖片描述

4、PLAY請求開始傳送數據

4.1、Client 請求

在這里插入圖片描述

4.2、Server 回復

在這里插入圖片描述

5、RTP數據傳送播放

5.1、Server 發來 (視頻流)

在這里插入圖片描述

5.2、Server 發來 (音頻流)

在這里插入圖片描述

6、TEARDOWN關閉會話,退出

客戶端發送TEARDOWN請求結束會話,與推流一樣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378864.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378864.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

找取照片上的25個特征點,并保存結果

找取照片上的25個特征點,并保存結果 import numpy as np import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠…

nutsdb與mysql_分享下 nutsdb 單機 1 億、10 億數據實測

大家好, 想給大家分享下我最近為 nutsdb 做的數據測試。測試項目起因事情起因是這個 issue ,簡單說就是內存高了,不夠用了。可能很多人不知道 NutsDB。簡單介紹下,NutsDB 是我幾個月以前開源的一個 Go 語言編寫的內嵌型 KV 數據庫…

java 方法 示例_帶有示例的Java EnumSetSupplementOf()方法

java 方法 示例EnumSet類complementOf()方法 (EnumSet Class complementOf() method) complementOf() method is available in java.util package. clipartOf()方法在java.util包中可用。 complementOf() method is used to contain all the elements of this EnumSet that are…

在需要時開啟Perl新特性

從5.10開始,新特性必須開啟才能使用。Perl默認不啟用新特性保持向后兼容。 如果想啟用新特性,可以使用新的-E開關。打開所有的新特性。 % perl5.10.1 -E say.pl #開啟5.10.1 版本的所有新特性 在源代碼中使用 use 指令之后指定perl版本號就可以了。 use …

P2P技術詳解(一):NAT詳解——詳細原理、P2P簡介

目錄1. IPv4協議和NAT的由來2. NAT的工作模型和特點2.1、NAT的概念模型2.2、一對一的NAT2.3、一對多的NAT2.4、按照NAT端口映射方式分類2.4.1全錐形NAT2.4.2限制錐形NAT2.4.3端口限制錐形NAT2.4.4對稱型NAT3. NAT的限制與解決方案3.1、IP端到端服務模型3.2、NAT的弊端3.3、NAT穿…

決定孩子命運的八大關鍵問題

你可以不是天才,但你可以是天才的父母!樹立做父母正確的家庭教育觀念,為孩子建造一個良好的人生平臺,讓孩子有很好的人格修養,懂得做人,懂得成功的真正含義。簡單方便,容易操作,適合…

java calendar_Java Calendar internalGet()方法與示例

java calendar日歷類internalGet()方法 (Calendar Class internalGet() method) internalGet() method is available in java.util package. internalGet()方法在java.util包中可用。 internalGet() method is used to get the value of the given field(fi) of this Calendar …

顯示照片的二維直方圖

顯示照片的二維直方圖 import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠;第二個參數,其中1表示…

周五怎么表示 mysql_完美起航-MySQL找每個月最后一個星期五--函數定義與使用

數據庫作業有一道題是這樣子的:有一張名叫emp的表記錄員工信息,其中有如下字段 HIREDATE 表示員工被雇用的日期:然后問題是這樣的:q7.Show details of employee hiredates and the date of their first payday.(Paydays occur on…

要想能安心,必須先死心。

其實,不論是感情,還是學習、工作還是生活,不都是如此?曾經年少懷抱一個名校夢,如果高考不成功,那么你一定會選擇考研讓自己死一次心;小時候特別喜歡 某個職業,長大了你拋棄所有機會追…

silverlight學習總結【完】

以下內容是個人理解,不保證正確性。且假設使用C#,并且有一定的相關知識和XML基礎。 silverlight是什么,能做什么 silverlight用XAML來做前端界面,用.NET或者JS作為程序腳本支持,在瀏覽器內外運行的應用。可以認為和FLA…

P2P技術詳解(二):P2P中的NAT穿越(打洞)方案詳解

目錄1、內容概述2、反向鏈接技術:一種特殊的P2P場景(通信雙方中只有一方位于NAT設備之后)3、基于UDP協議的P2P打洞技術詳解3.1、原理概述3.2、典型P2P情景1: 兩客戶端位于同一NAT設備后面(即相同內網中)3.3…

Java Byte類的compareTo()方法和示例

簡短的類compareTo()方法 (Short class compareTo() method) compareTo() method is available in java.lang package. compareTo()方法在java.lang包中可用。 compareTo() method is used to check equality or inequality for this Byte object against the given Byte objec…

顯示照片的RGB直方圖

顯示照片的RGB直方圖 import numpy as np import cv2 as cv from matplotlib import pyplot as plt img cv.imread(E:\Python-workspace\OpenCV\OpenCV/BEYOND.png,1)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠;第二個參…

OUT還開通博客!

現在哪有人還在玩博客哦,哎試試,記錄一下自己開發網站的點滴吧!轉載于:https://www.cnblogs.com/17say/archive/2013/02/18/2915125.html

網站V5的一些想法(轉)

V5即將到來,面對“全新”的V5,前端這塊自然也要借這次改版的機會,將我們前端的一些想法實踐到V5中去,實現一次跨越。 1 嘗試模塊化的代碼書寫(html、css等) 模塊化的目的是為了提高代碼的重用性、擴展性、可維護性 2 文件引用使用…

mysql慢查詢開啟語句分析_mysql慢查詢語句分析總結

我們經常會接觸到MySQL,也經常會遇到一些MySQL的性能問題。我們可以借助慢查詢日志和explain命令初步分析出SQL語句存在的性能問題通過SHOW FULL PROCESSLIST查看問題SHOW FULL PROCESSLIST相當于select * from information_schema.processlist可以列出正在運行的連…

P2P技術詳解(三):P2P中的NAT穿越(打洞)方案詳解(進階分析篇)

目錄1、NAT和NAPT2、NAT帶來的問題3、P2P通信穿越NAT的技術、方法4、NAT穿越技術1:應用層網關4.1、原理4.2、限制5、NAT穿越技術2:中間件技術5.1、原理5.2、限制6、NAT穿越技術3:打洞技術(Hole Punching)6.1、原理6.2、方法6.2.1NAT行為類型與…

Java BufferedReader reset()方法及示例

BufferedReader類的reset()方法 (BufferedReader Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset the stream to the most recent mark of this stream. reset()方法用于將流重置為該…

將兩大小完全相同的照片進行加權混合對比

將兩張大小完全相同的照片進行加權混合對比 import cv2 img1cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠;第二個參數,其中1表示所選照片為彩色照片…