RTSP中的主方法

  • OPTION
    RTSP客户端通过该方法向RTSP服务器请求服务器所支持的方法,示例如下:
    C->S
    OPTIONS rtsp://192.168.10.115:554/live.sdp RTSP/1.0
    CSeq: 1
    User-Agent: Shining100

    S->C
    RTSP/1.0 200 OK
    CSeq: 1
    Date: Wed, 10 Nov 2010 11:28:10 GMT
    Public: OPTIONS, DESCRIBE, PLAY, SETUP, TEARDOWN

  • DESCRIBE
    DESCRIBE获取RTSP服务器中指定标识(presentation)的说明。通过该方法,我们可以通过该方法该标识下的流的名称和属性。我们可以通过在该方法的Request中的request-header中的Accept字段,来指定RTSP服务器以什么样的方式来说明留的属性。例如使用SDP。示例如下:
    C->S
    DESCRIBE rtsp://192.168.10.115:554/live.sdp RTSP/1.0
    CSeq: 2
    User-Agent: Shining100
    Accept: application/sdp
    S->C
    RTSP/1.0 200 OK
    CSeq: 2
    Date: Mon, 25 Oct 2010 11:0:22 GMT
    Content-Base: rtsp://192.168.10.115/live.sdp/
    Content-Type: application/sdp
    Content-Length: 431

    v=0
    o=RTSP 1288004422 894 IN IP4 0.0.0.0
    s=RTSP server
    c=IN IP4 0.0.0.0
    t=0 0
    a=charset:Shift_JIS
    a=range:npt=0-
    a=control:*
    a=etag:1234567890
    m=video 0 RTP/AVP 26
    a=control:trackID=1
    m=audio 0 RTP/AVP 97
    a=control:trackID=6
    a=rtpmap:97 mpeg4-generic/8000/2
    a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1590;SizeLength=13; IndexLength=3; IndexDeltaLength=3; CTSDeltaLength=0; DTSDeltaLength=0;
    使用DESCRIBE命令获取RTSP服务器真正的流的名字,使用SETUP中命令向RTSP服务器申请实时流。

  • SETUP
    定义RTSP客户端和RTSP服务器之间的实时流的传输方式。传输方式可以是TCP、UDP或者是MULTICAST其中之一。通过在SETUP命令中的Transport-Header字段来定义RTSP客户端和RTSP服务器之间是用什么方式进行流传输。Transport-Header字段定义如下:
    Transport:transport-protocol/profile[/lower-transport] (“unicast”|”multicast”)
    | ”;” ”interleaved” ”=” channel [ ”-” channel ]
    | ”;” ”port” ”=” port [ ”-” port ]
    | ”;” ”client port” ”=” port [ ”-” port ]
    | ”;” ”server port” ”=” port [ ”-” port ]
    | ”;” ”mode” = <”> 1#mode <”>
    unicast = 单播,multicast = 多播,该参数为必填参数
    interleaved = 使用传输流和RTSP控制混合传输的方式
    port = 多播传输时的端口
    client port = UDP做为底层传输协议时的RTSP客户端的端口号
    server port = 使用UDP做为底层传输协议时的RTSP服务器的端口号
    mode = 即将进行的取流操作。可以填写PLAY或者RECORD。
    在SETUP的响应(Response)中的Session字段表示此次回话的id,在此次回话中关于操作实时流的方法(PLAY、RECORD),都是需要在请求中添加该ID。
    关于SETUP还有一点需要注意,如果我们要同时获取视频流以及音频流。假设首先SETUP视频流,然后SETUP音频流,其实首先SETUP哪个流都可以。第一次SETUP时必须记录下Session ID,因为第二次SETUP时,我们就需要在请求(Request)中传入该ID值。示例如下:
    TCP
    C->S
    SETUP rtsp://192.168.10.115:554/live.sdp/trackID=1 RTSP/1.0
    CSeq: 3
    User-Agent: Shining100
    Transport: RTP/AVP/TCP;unicast;interleaved=0-1

    S->C
    RTSP/1.0 200 OK
    CSeq: 3
    Date: Wed, 10 Nov 2010 11:28:10 GMT
    Session: 18119504;timeout=80
    Transport: RTP/AVP/TCP;interleaved=0-1;unicast;mode=play

    UDP
    C->S
    SETUP rtsp://192.168.10.115/live.sdp/trackID=1 RTSP/1.0
    CSeq: 3
    Transport:RTP/AVP;unicast;client_port=2696-2697
    User-Agent: Shining100

    S->C
    RTSP/1.0 200 OK
    CSeq: 3
    Date: Mon, 25 Oct 2010 11:7:0 GMT
    Session: 504931;timeout=80
    Transport: RTP/AVP;unicast;client_port=2696-2697;server_port=5556-5557

  • PLAY
    请求RTSP服务器以SETUP中协商的方式发送流。示例如下:
    C->S
    PLAY rtsp://192.168.10.115:554/live.sdp RTSP/1.0
    CSeq: 4
    User-Agent: Shining100
    Range: npt=0.000-
    Session: 18119504

    S->C
    RTSP/1.0 200 OK
    CSeq: 4
    Date: Wed, 10 Nov 2010 11:28:10 GMT
    Session: 18119504;timeout=80
    Range:播放时间,npt=0.000-: 表示从开始到结束
    Timeout:超时时间。必须在这个时间内向RTSP服务器发送RTSP方法或者RTCP包,否则RTSP服务器会认为会话失败。

  • TEARDOWN
    终止回话,释放资源。
    C->S
    TEARDOWN rtsp://192.168.10.115:554/live.sdp RTSP/1.0
    CSeq: 5
    User-Agent: Shining100
    Session: 18119504

    S->C
    RTSP/1.0 200 OK
    CSeq: 5
    Session: 18119504
    这里介绍底层传输协议为TCP的RTP流的传输格式。在使用PLAY方法并得到成功的Response后,RTSP服务器就会向RTSP客户端发送实时流数据了。发送过来的数据的第一个字节是一个ASCII码 SETUPinterleavedChannel()RTP/RTCPRTP/RTCPS>C: /000{2 byte length}{“length” bytes data, w/RTP header}
    S->C: /0002bytelengthlengthbytesdata,w/RTPheaderS>C: /001{2 byte length}{“length” bytes RTCP packet}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值