2025年3月25日 星期二 甲辰(龙)年 月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 网络通信

rtsp(udp、tcp)协议详解

时间:03-13来源:作者:点击数:58

使用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模式进行通信。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门