日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RTSP协议解析-概述

發布時間:2024/1/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTSP协议解析-概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

協議簡介

RTSP(Real Time Streaming Protocol),RFC2326,實時流傳輸協議,是TCP/IP協議體系中的一個應用層協議。RTSP對流媒體提供了諸如暫停,快進等控制,而它本身并不傳輸數據,數據的傳輸通過rtp協議。RTSP的作用相當于流媒體服務器的遠程控制。服務器端可以自行選擇使用TCP或UDP來傳送串流內容該協議定義了一對多應用程序如何有效地通過 IP 網絡傳送多媒體數據。RTSP在體系結構上位于RTP和RTCP之上,它使用TCP或UDP完成數據傳輸。

RTSP使用場景安防監控攝像頭。在監控領域中RTSP使用比較廣泛,監控攝像頭相當于一個RTSP服務器,App是一個RTSP客戶端,這樣我們可以通過手機實時查看攝像頭信息。同時還可以通過RTSP協議實現暫停、錄制功能。

客戶端-服務端協議交互

上圖描述了客戶端-服務端RTSP交互中必須的流程,還有些可選的方法像PAUSE、RECORD、REDIRECT、SET_PARAMETER等方法也可以在我們需要的時候調用。

客戶端-服務端交互抓包

rtsp協議交互抓包圖:

rtp抓包圖:

上面介紹了rtsp 客戶端-服務端交互的過程及抓包分析。這里的抓包軟件使用的是WireShark; 像我們平常使用更多的是Charles,它在抓取Http、Https協議挺不錯的,但Charles在抓取流媒體協議RTMP、RTSP、RTP等的時候就不是很方便了。
了解一個協議,核心就是掌握其消息格式以及協議交互流程。上面介紹了RTSP協議的交互流程,下面重點分析下每一步的消息格式。

RTSP協議格式

RTSP中所有的操作都是通過服務器和客戶端的消息應答機制完成的,其中消息包括請求和應答兩種,RTSP是對稱的協議,客戶機和服務器都可以發送和回應請求。RTSP是一個基于文本的協議,它使用UTF -8編碼(RFC2279)和ISO10646字符序列,采用RFC882定義的通用消息格式,每個語句行由CRLF結束。RTSP的消息包括請求和應答兩類。

請求消息

消息說明:請求消息包括請求行、請求頭、請求體;與Http的消息格式類似;RTSP的請求體部分很少使用,這里不再進行講解,后面我們抓包分析的時候也會看到請求體基本都是無數據的。
方法:表示RTSP的請求方法OPIONS、DESCRIBE、SETUP、PLAY、TEARDOWN等。
URL:表示接收方地址。例如:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
版本:RTSP的版本號,一般為 RTSP/1.0
CR:表示回車
LF:表示換行
請求頭:以key:value 的形式封裝請求頭數據;
我們通過ffplay播放 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.m,wireshark 抓包一個請求消息:

這里就簡單分析下文本部分,16進制數據等后面再詳細分析。
消息行:

  • 方法:OPTIONS
  • URL:rtsp://wowzaec2demo.streamlock.net:554/vod/mp4:BigBuckBunny_115k.mov
  • 版本:RTSP/1.0
    消息頭:
    CSeq: 表示序列號,由于OPTIONS方法是RTSP請求的第一個方法,所以序列號為1;
    user-Agent: 表示代理;
  • 回應消息

    回應消息的格式如下圖所示:

    消息說明:回應消息也是包括回應行、回應頭、回應體;與Http的回應消息格式也是類似;RTSP的回應體部分很少使用,這里不再進行講解,后面我們抓包分析的時候也會看到回應體基本都是無數據的。
    版本:RTSP的版本號,一般為 RTSP/1.0
    狀態碼:表示請求狀態,同http的返回狀態,如200,表示OK。
    狀態碼由三位數組成,表示方法執行的結果,定義如下:

  • 1XX:保留,將來使用;
  • 2XX:成功,操作被接收、理解、接受(received,understand,accepted);
  • 3XX:重定向,要完成操作必須進行進一步操作;
  • 4XX:客戶端出錯,請求有語法錯誤或無法實現;
  • 5XX:服務器出錯,服務器無法實現合法的請求。
    短語:就是狀態碼的解釋;
    回應頭:以key:value 的形式封裝回應頭數據;
    wireshark 抓包一個OPTIONS回應消息:
  • OPTIONS回應消息參考上面的介紹自行分析。

    總結
    文章主要是介紹了RTSP消息格式以及協議交互流程,并通過抓包的方式分析RTSP具體的交互過程及交互協議的分析。后面有時間再具體分析每一個具體RTSP消息協議、SDP、RTP、RTCP及場景實踐。

    總結

    以上是生活随笔為你收集整理的RTSP协议解析-概述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。