rtsp(udp、tcp)协议详解

使用VLC播放器作为RTSP的客户端

(1)rtsp服务器既支持udp模式也支持tcp模式,使用VLC拉流时,默认回复的是udp模式。在测试过程中发现,当udp模式下,VLC播放器会检测服务器分配的视频流端口是否可用,不可用的话,会断掉连接,重新使用tcp模式进行连接。

OPTIONS rtsp://192.168.1.66:3365/username=xiaoming RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)


RTSP/1.0 200 OK
CSeq: 2
Date: Thu Jul  9 11:39:06 2020
Public: OPTIONS, DESCRIBE, SETUP, PLAY, GET_PARAMETER, TEARDOWN


DESCRIBE rtsp://192.168.1.66:3365/username=xiaoming RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp


RTSP/1.0 200 OK
CSeq: 3
Date: Thu Jul  9 11:39:06 2020
Content-Type: application/sdp
Content-Length: 168
v=0
o=- 0 0 IN IP4 192.168.1.166
s=sipproxy server
c=IN IP4 192.168.1.166
t=0 0
m=video 0 RTP/AVP 98
a=control:trackID=1
a=range:npt=0-
a=rtpmap:98 H264/90000

SETUP rtsp://192.168.1.66:3365/username=xiaoming/trackID=1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=56440-56441


RTSP/1.0 200 OK
CSeq: 4
Date: Thu Jul  9 11:39:06 2020
Session: 1594265946-27971;timeout=60
Transport: RTP/AVP;unicast;destination=192.168.1.66;source=192.168.1.166;client_port=56440-56441;server_port=15721-15722;mode="play"


PLAY rtsp://192.168.1.66:3365/username=xiaoming RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Session: 1594265946-27971
Range: npt=0.000-

RTSP/1.0 200 OK
CSeq: 5
Date: Thu Jul  9 11:39:06 2020
Session: 1594265946-27971
RTP-Info: url=rtsp://192.168.1.166:3365/username=xiaoming;seq=0;rtptime=0
Range: npt=0.000-


TEARDOWN rtsp://192.168.1.66:3365/username=xiaoming RTSP/1.0
CSeq: 6
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Session: 1594265946-27971


RTSP/1.0 200 OK
CSeq: 6
Date: Thu Jul  9 11:39:16 2020
Session: 1594265946-27971

上述流程为先使用udp方式进行连接,从抓包来看,服务器端口15721-15722是不可达的

抓包数据

       通过ICMP tcp/ip控制数据包来看,上面发送的udp包端口不可达,然后VLC直接断开了rtsp请求,改用tcp模式进行请求视频。

OPTIONS rtsp://192.168.1.166:3365/username=xiaoming RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)



RTSP/1.0 200 OK
CSeq: 2
Date: Thu Jul  9 11:39:16 2020
Public: OPTIONS, DESCRIBE, SETUP, PLAY, GET_PARAMETER, TEARDOWN



DESCRIBE rtsp://192.168.1.166:3365/username=xiaoming RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp



RTSP/1.0 200 OK
CSeq: 3
Date: Thu Jul  9 11:39:16 2020
Content-Type: application/sdp
Content-Length: 168

v=0
o=- 0 0 IN IP4 192.168.1.166
s=sipproxy server
c=IN IP4 192.168.1.166
t=0 0
m=video 0 RTP/AVP 98
a=control:trackID=1
a=range:npt=0-
a=rtpmap:98 H264/90000

SETUP rtsp://192.168.1.166:3365/username=xiaoming/trackID=1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1


RTSP/1.0 200 OK
CSeq: 4
Date: Thu Jul  9 11:39:16 2020
Session: 1594265956-27973;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=5db3;mode="play"


PLAY rtsp://192.168.1.166:3365/username=xiaoming RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.6 (LIVE555 Streaming Media v2016.11.28)
Session: 1594265956-27973
Range: npt=0.000-


RTSP/1.0 200 OK
CSeq: 5
Date: Thu Jul  9 11:39:16 2020
Session: 1594265956-27973
RTP-Info: url=rtsp://192.168.1.166:3365/username=xiaoming;seq=0;rtptime=0
Range: npt=0.000-

使用tcp发送视频流的端口就是用通信的端口进行接收数据包,这种方式可以灵活的对应两种不用的网络环境,当udp不满足条件时,转换为tcp模式进行通信。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫手的热山药

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值