EasyNVR视频监控综合管理平台支持多种格式视频流的直播播放,包括HLS、FLV、RTSP等,今年我们在此基础上又开发了WebRTC格式的播放。EasyNVR的功能为拉取RTSP流分发出HLS、HTTP-FLV、RTMP、RTSP等流,为了熟悉RTSP流,因此针对RTSP流进行抓包分析。
使用 WireShark 抓包分析如下,红色字体为请求,蓝色字体为响应:
一、操作
OPTIONS rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
RTSP/1.0 200 OK
Server: tsingsee0.23.0
CSeq: 2
Public:DESCRIBE, ANNOUNCE, SETUP, PLAY, PAUSE, RECORD, TEARDOWN
二、视频描述
以下代表为视频流,控制的streamid=0,并且对应的类型为96:
DESCRIBE rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 3
Date: Thu, 15 Jul 2021 10:34:36 CST
Content-Type: application/sdp
Content-Length: 473
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 127.0.0.1
t=0 0
a=tool:lal 0.22.0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAIKw05AFAFuwEQAAA+kAAdTAjxgxkgA==,aO6yyLA=; profile-level-id=640016
a=control:streamid=0
以下代表为音频流,控制的streamid=1。并且对应的类型为97:
m=audio 0 RTP/AVP 97
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/48000/2
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1190
a=control:streamid=1
三、获取传输端口及通道
以下streamed=0,代表为视频流服务端的端口为30004和30005传输数据:
SETUP rtsp://192.168.99.162:5544/live/YKiavBi7g/streamid=0 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=54374-54375
RTSP/1.0 200 OK
CSeq: 4
Date: Thu, 15 Jul 2021 10:34:36 CST
Session: 191201771
Transport:RTP/AVP/UDP;unicast;client_port=54374-54375;server_port=30004-30005
以下streamed=1,代表为音频流服务端的端口为30006和30007传输音频数据:
SETUP rtsp://192.168.99.162:5544/live/YKiavBi7g/streamid=1 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=54376-54377
Session: 191201771
RTSP/1.0 200 OK
CSeq: 5
Date: Thu, 15 Jul 2021 10:34:36 CST
Session: 191201771
Transport:RTP/AVP/UDP;unicast;client_port=54376-54377;server_port=30006-30007
四、开始播放
PLAY rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0
CSeq: 6
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
Session: 191201771
Range: npt=0.000-
RTSP/1.0 200 OK
CSeq: 6
Date: Thu, 15 Jul 2021 10:34:36 CST
五、传输数据
传输音频,使用的是30006端口,对应的类型为97,代表为音频类型。
一般音频流存在的时候会有多个mark数据。
传输视频,使用的是30004端口,对应的类型96,代表为视频类型。如下图:
六、结束
TEARDOWN rtsp://192.168.99.162:5544/live/YKiavBi7g RTSP/1.0
CSeq: 7
User-Agent: LibVLC/3.0.12 (LIVE555 Streaming Media v2016.11.28)
Session: 191201771
RTSP/1.0 200 OK
CSeq: 7