zoukankan      html  css  js  c++  java
  • 终端模拟rtsp回话过程

    1. telnet 192.168.1.98 81
    2. Ctrl+]
    3. 回车
    4. 将待发送的请求(see following example.)粘贴在光标处。Windowns 下好像只能一个一个敲, 痛苦....
     
    OPTIONS rtsp://30.0.0.17/pinball.wmv RTSP/1.0
    CSeq: 1
    User-Agent: WMPlayer/11.0.5721.5251 guid/b4112aa1-c1da-4f3a-9d43-978db491b5d9
    Content-Length: 0
     
    5. 回车再回车 添加空行
     
     
    简单的rtsp交互过程:
           C表示rtsp客户端,S表示rtsp服务端
    1.C->S:OPTION request       //询问S有哪些方法可用
    1.S->C:OPTION response    //S回应信息中包括提供的所有可用方法
     
    2.C->S:DESCRIBE request      //要求得到S提供的媒体初始化描述信息
    2.S->C:DESCRIBE response    //S回应媒体初始化描述信息,主要是sdp
     
    3.C->S:SETUP request             //设置会话的属性,以及传输模式,提醒S建立会话
    3.S->C:SETUP response          //S建立会话,返回会话标识符,以及会话相关信息
     
    4.C->S:PLAY request        //C请求播放
    4.S->C:PLAY response            //S回应该请求的信息
     
    S->C:发送流媒体数据,即rtp包。此时需要新建一个udp回话来接受摄像头发送的包。
     
    5.C->S:TEARDOWN request      //C请求关闭会话
    5.S->C:TEARDOWN response //S回应该请求
     
     
     
    rtsp中常用方法: 
     
    1. OPTION
    目的是得到服务器提供的可用方法:
    OPTIONS rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
    CSeq: 1 //每个消息都有序号来标记,第一个包通常是option请求消息
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
     
    服务器的回应信息包括提供的一些方法,例如:
    RTSP/1.0 200 OK 
    Server: UServer 0.9.7_rc1
    Cseq: 1 //每个回应消息的cseq数值和请求消息的cseq相对应
    Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE,GET_PARAMETER //服务器提供的可用的方法
     
    2. DESCRIBE 
    C向S发起DESCRIBE请求,为了得到会话描述信息(SDP):
    DESCRIBE rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
    CSeq: 2
    token: 
    Accept: application/sdp
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10) 
     
    服务器回应一些对此会话的描述信息(sdp):
    RTSP/1.0 200 OK 
    Server: UServer 0.9.7_rc1 
    Cseq: 2 
    x-prev-url: rtsp://192.168.20.136:5000 
    x-next-url: rtsp://192.168.20.136:5000 
    x-Accept-Retransmit: our-retransmit 
    x-Accept-Dynamic-Rate: 1 
    Cache-Control: must-revalidate 
    Last-Modified: Fri, 10 Nov 2006 12:34:38 GMT 
    Date: Fri, 10 Nov 2006 12:34:38 GMT 
    Expires: Fri, 10 Nov 2006 12:34:38 GMT 
    Content-Base: rtsp://192.168.20.136:5000/xxx666/ 
    Content-Length: 344 
    Content-Type: application/sdp 
     
    v=0 //以下都是sdp信息
    o=OnewaveUServerNG 1451516402 1025358037 IN IP4 192.168.20.136 
    s=/xxx666 
    u=http:/// 
    e=admin@ 
    c=IN IP4 0.0.0.0 
    t=0 0 
    a=isma-compliance:1,1.0,1 
     
    a=range:npt=0- 
    m=video 0 RTP/AVP 96 //m表示媒体描述,下面是对会话中视频通道的媒体描述
    a=rtpmap:96 MP4V-ES/90000 
    a=fmtp:96 profile-level-id=245;config=000001B0F5000001B509000001000000012000C888B0E0E0FA62D089028307 a=control:trackID=0 //trackID=0表示视频流用的是通道0
     
    3.SETUP 
    客户端提醒服务器建立会话,并确定传输模式:
    SETUP rtsp://192.168.20.136:5000/xxx666/trackID=0 RTSP/1.0 
    CSeq: 3 
    Transport: RTP/AVP/TCP;unicast;interleaved=0-1 
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
    //uri中 带有trackID=0,表示对该通道进行设置。Transport参数设置了传输模式,包的结构。接下来的数据包头部第二个字节位置就是 interleaved,它的值是每个通道都不同的,trackID=0的interleaved值有两个0或1,0表示rtp包,1表示rtcp包,接 受端根据interleaved的值来区别是哪种数据包。
     
    服务器回应信息:
    RTSP/1.0 200 OK 
    Server: UServer 0.9.7_rc1 
    Cseq: 3 
    Session: 6310936469860791894 //服务器回应的会话标识符
    Cache-Control: no-cache 
    Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=6B8B4567
     
    4.PLAY 
    客户端发送播放请求:
    PLAY rtsp://192.168.20.136:5000/xxx666 RTSP/1.0 
    CSeq: 4 
    Session: 6310936469860791894 
    Range: npt=0.000- //设置播放时间的范围
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
     
    服务器回应信息:
    RTSP/1.0 200 OK 
    Server: UServer 0.9.7_rc1 
    Cseq: 4 
    Session: 6310936469860791894 
    Range: npt=0.000000- 
    RTP-Info: url=trackID=0;seq=17040;rtptime=1467265309 
    //seq和rtptime都是rtp包中的信息
     
    5.TEARDOWN 
    客户端发起关闭请求:
    TEARDOWN rtsp://192.168.20.136:5000/xxx666 RTSP/1.0 
    CSeq: 5 
    Session: 6310936469860791894 
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10) 
     
    服务器回应:
    RTSP/1.0 200 OK 
    Server: UServer 0.9.7_rc1 
    Cseq: 5 
    Session: 6310936469860791894 
    Connection: Close 
    下面是截图:

     
     
  • 相关阅读:
    iOS开发-文件管理
    MagicalRecord
    NSPredicate的
    Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
    iOS 开发者必不可少的 75 个工具
    UITableView 删除cell
    手势
    随机数
    PPT2016同时播放多个视频
    MATLAB运行时,弹出图片框影响电脑使用
  • 原文地址:https://www.cnblogs.com/foxmin/p/2389861.html
Copyright © 2011-2022 走看看