客户端连接rtsp的步骤

      通过建立与rtsp server的TCP/IP连接 发送指定的rtsp文本串 建立与相机的会话。

步骤如下:

    发送 OPTIONS ->等待回应->发送DESCRIBE->等待回应->发送DESCRIBE注册->等待回应->发送SETUP->等待回应->发送PLAY->等待回应->发送TEARDOWN->等待回应

1、发送OPTIONS

OPTIONS rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream RTSP/1.0
CSeq: 1
User-Agent: Lavf56.1.100
得到的正确响应:

RTSP/1.0 200 OK
CSeq: 1
Public: OPTIONS, DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN, SET_PARAMETER, GET_PARAMETER
Date:  Wed, Sep 10 2014 16:27:48 GMT

2、发送DESCRIBE

DESCRIBE rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: Lavf56.1.100
得到的正确响应:

RTSP/1.0 401 Unauthorized
CSeq: 2
WWW-Authenticate: Digest realm="4419b63a3e83", nonce="fa218e35fe0bb9cb74269789478d663c", stale="FALSE"
WWW-Authenticate: Basic realm="4419b63a3e83"
Date:  Wed, Sep 10 2014 16:27:48 GMT
 

3、发送DESCRIBE

由于上次未注册成功 所以需要传用户名和密码

DESCRIBE rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream RTSP/1.0
Accept: application/sdp
CSeq: 3
User-Agent: Lavf56.1.100
Authorization: Digest username="admin",realm="4419b63a3e83",nonce="fa218e35fe0bb9cb74269789478d663c",uri="rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream",response="3dc849d6fda77d44da65d03ddbda22a9"

得到的正确响应:

RTSP/1.0 401 Unauthorized
CSeq: 2
WWW-Authenticate: Digest realm="4419b63a3e83", nonce="fa218e35fe0bb9cb74269789478d663c", stale="FALSE"
WWW-Authenticate: Basic realm="4419b63a3e83"
Date:  Wed, Sep 10 2014 16:27:48 GMT

4、发送SETUP
SETUP rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/trackID=1 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=6170-6171
CSeq: 4
User-Agent: Lavf56.1.100
Authorization: Digest username="admin",realm="4419b63a3e83",nonce="fa218e35fe0bb9cb74269789478d663c",uri="rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/trackID=1",response="9f07c507c8adfe0b4dcd45048d2a3447"
得到的正确响应:

RTSP/1.0 200 OK
CSeq: 3
Content-Type: application/sdp
Content-Base: rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/
Content-Length: 592


v=0
o=- 1410366468180443 1410366468180443 IN IP4 192.168.1.142
s=Media Presentation
e=NONE
b=AS:5050
t=0 0
a=control:rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/
m=video 0 RTP/AVP 96
c=IN IP4 192.168.1.142
b=AS:5000
a=recvonly
a=control:rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z00AKZpmA8ARPyzUBAQFAAADA+gAAMNQBA==,aO48gA==
a=Media_header:MEDIAINFO=494D4B48010100000400010000000000000000000000000000000000000000000000000000000000;
a=appversion:1.0

[Malformed Packet: SDP]

5、发送PLAY

PLAY rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/ RTSP/1.0
Range: npt=0.000-
CSeq: 5
User-Agent: Lavf56.1.100
Session: 257541033
Authorization: Digest username="admin",realm="4419b63a3e83",nonce="fa218e35fe0bb9cb74269789478d663c",uri="rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/",response="ea5dec17eee88adb2a73c09f82af9d57"
得到的正确响应:

RTSP/1.0 200 OK
CSeq: 5
Session:        257541033
RTP-Info: url=rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/trackID=1;seq=39931;rtptime=535701844
Date:  Wed, Sep 10 2014 16:27:48 GMT

6、发送TEARDOWN

TEARDOWN rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/ RTSP/1.0
CSeq: 7
User-Agent: Lavf56.1.100
Session: 257541033
Authorization: Digest username="admin",realm="4419b63a3e83",nonce="fa218e35fe0bb9cb74269789478d663c",uri="rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/",response="340ebc78bb454c75b5ebe9d02d1d2a93"
得到的正确响应:

RTSP/1.0 200 OK
CSeq: 6
Session:        257541033
RTP-Info: url=rtsp://192.168.1.142:554/MPEG-4/ch2/main/av_stream/trackID=1;seq=40404;rtptime=535804460
Date:  Wed, Sep 10 2014 16:27:49 GMT



 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RTSP(Real-Time Streaming Protocol)是一种用于实时流媒体传输的网络协议,它通过建立客户端与服务器之间的连接,实现音视频数据的传输和控制。C语言作为一种通用的编程语言,也可以用来开发RTSP客户端。 开发RTSP客户端的过程大致可以分为以下几个步骤: 1. 建立连接:使用C语言的套接字编程,通过指定服务器的IP地址和端口号,创建一个与服务器的连接。 2. 发送请求:根据RTSP协议规范,构造RTSP请求消息,并通过套接字发送给服务器。请求消息主要包括方法(如SETUP、PLAY、PAUSE等)、URL(指定要访问的媒体资源)、协议版本等字段。 3. 接收响应:使用套接字接收服务器返回的响应消息。响应消息包括状态码(如200表示成功,404表示未找到资源)、协议版本、描述性信息等字段。 4. 解析响应:解析接收到的响应消息,提取出需要的信息,如会话ID、媒体传输端口等。 5. 控制流程:根据需求,向服务器发送不同的RTSP请求,控制媒体的播放、暂停、停止等操作。 6. 数据传输:通过套接字接收服务器传输的音视频数据,并进行处理,比如解码播放或保存到本地文件。 7. 断开连接:当不再需要与服务器通信时,关闭套接字,释放资源。 在开发RTSP客户端时,还可以使用C语言提供的其他库函数来简化开发过程,如网络库libcurl、媒体处理库FFmpeg等。 以上是对于RTSP C语言客户端的大致回答,具体开发过程中可能还需要根据实际需求进行相应的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值