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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RTSP协议分析

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

RTSP協議


目錄

  • FFmpeg源碼對應?錄
  • RTSP協議概述
  • RTSP協議與HTTP協議區別
  • 推流過程
  • 推流詳細過程
  • 第?步:OPTION 查詢服務器端可??法
  • 第?步:ANNOUNCE 發送媒體描述信息
  • 第三步:SETUP建?RTSP會話
  • 第四步:RECORD請求傳送數據
  • 第五步: RTP數據推送
  • 第六步:TEARDOWN關閉會話,退出
  • 推流過程總結
  • 拉流過程
  • 拉流詳細過程
  • 第?步:查詢服務器端可??法
  • 第?步:DESCRIBE得到媒體描述信息
  • 第三步:SETUP建?RTSP會話
  • 第四步:PLAY請求開始傳送數據
  • 第五步: RTP數據傳送播放中
  • 第六步:TEARDOWN關閉會話,退出
  • 總結

  • 1. FFmpeg源碼對應?錄

  • rtsp.c 是總??,推流拉流都是該?件
  • rtspenc.c:推流的時候使?
  • rtspdec.c:拉流的時候使?

  • 2. RTSP協議概述

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

  • 3. RTSP協議與HTTP協議區別

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

  • 4. 推流過程

    1. 推流詳細過程

    1. 第?步:OPTION 查詢服務器端可??法
  • C->S:OPTION request,詢問S有哪些?法可?
  • S->C:OPTION response,S回應信息的public頭字段中包括提供的所有可??法
  • 2. 第?步:ANNOUNCE 發送媒體描述信息
  • C->S:ANNOUNCE request,客戶端發送媒體描述信息給服務器

  • S->C:ANNOUNCE response,S回應媒體描述信息,并返回了Session ID

  • 3. 第三步:SETUP建?RTSP會話
  • C->S:SETUP request,通過Transport頭字段列出可接受的傳輸選項,請求S建?會話
  • 其中client_port=31590-31591含義為:
  • RTP客戶端發送端口為 31590
  • RTCP客戶端發送端口為 31591
  • S->C:SETUP response,S建?會話,通過Transport頭字段返回選擇的具體轉輸選項,并返回建?的Session ID;
  • 其中client_port=31590-31591;server_port=59472-59473含義為
  • 客戶端發送到服務器,RTP端口是: 31590(C) -> 59472(S)
  • 客戶端發送到服務器,RTCP端口是: 31591(C) -> 59473 (S)
  • 例如RTP包信息:
  • C->S:SETUP request,通過Transport頭字段列出可接受的傳輸選項,請求S建?會話(重復setup步驟,建立音頻會話)
  • 其中,streamid=0表示建立video會話,streamid=1表示建立audio會話
  • S->C:SETUP response,S建?會話,通過Transport頭字段返回選擇的具體轉輸選項
  • 4. 第四步:RECORD請求傳送數據
  • C->S:RECORD request,C向S請求發送數據
  • S->C:RECORD response,S回應該允許的信息
  • 5. 第五步: RTP數據推送
  • C->S:發送流媒體數據,通過RTP協議傳送數據
  • 視頻數據
  • 音頻數據
  • 6. 第六步:TEARDOWN關閉會話,退出
  • C->S:TEARDOWN request,C請求關閉會話
  • S->C:TEARDOWN response,S回應該請求

  • 5. 推流過程總結


    6. 拉流過程

    1. 拉流詳細過程
    1. 第?步:查詢服務器端可??法
  • C->S:OPTION request,詢問S有哪些?法可?
  • S->C:OPTION response,S回應信息的public頭字段中包括提供的所有可??法
  • 2. 第?步:DESCRIBE得到媒體描述信息
  • C->S:DESCRIBE request,要求得到S提供的媒體描述信息

  • S->C:DESCRIBE response,S回應媒體描述信息,?般是sdp信息

  • 3. 第三步:SETUP建?RTSP會話
  • C->S:SETUP request,通過Transport頭字段列出可接受的傳輸選項,請求S建?會話(視頻)

  • S->C:SETUP response,S建?會話,通過Transport頭字段返回選擇的具體轉輸選項

  • 和推流不同點在于拉流ssrc是具體值, 推流是000000
  • C->S:SETUP request,通過Transport頭字段列出可接受的傳輸選項,請求S建?會話(音頻)

  • S->C:SETUP response,S建?會話,通過Transport頭字段返回選擇的具體轉輸選項

  • 4. 第四步:PLAY請求開始傳送數據
  • C->S:PLAY request,C請求S開始發送數據
  • S->C:PLAY response,S回應該請求的信息
  • 5. 第五步: RTP數據傳送播放中
  • S->C:發送流媒體數據,通過RTP協議傳送數據
  • ssrc就是在setup返回的ssrc
  • video的ssrc來?服務器,audio的ssrc也是來自服務器
  • audio
  • 6. 第六步:TEARDOWN關閉會話,退出
  • C->S:TEARDOWN request,C請求關閉會話
  • S->C:TEARDOWN response,S回應該請求
  • 7. 總結

  • 推拉流過程區別
    第?步 option是?樣的
    第?步 有區別,推流:ANNOUNCE; 拉流:DESCRIBE
    第三步: SETUP
    第四步:推流:RECORD;拉流:PLAY
    第五步:RTP傳輸,只是?向剛好相反
    第六步:TEARDOWN

  • SSRC由誰來定義,是client還是server?
    推流是客戶端??定義的
    拉流的時候是服務器發送過來的

  • session id由誰?來
    推流來?server,當C->S ANNOUNCE后,server reply時附帶session id

  • 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

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

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