1、参考:https://blog.csdn.net/qq_26602023/article/details/100987827
https://www.cnblogs.com/linhaostudy/p/11140823.html
https://www.cnblogs.com/lidabo/p/6553212.html
2、使用工具:Wireshark、SocketTool4
3、使用RTSP测试C#代码下载:https://codeload.github.com/ngraziano/SharpRTSP/zip/master
4、修改RtspClientExample项目中代码url为:
String url = "rtsp://admin:111111@192.168.1.2:554/Streaming/Channels/201";
5、Wireshark捕获过滤器
6、增加显示过滤器,目的只显示TCP协议中的Flags为PSH,ACK的包,点击”表达式..."从显示过滤器中找到TCP,点开后选中tcp.flags,然后在选择"==",在值中录入0x18的十进制值:24。再点“表达式..."左边的箭头即可实现显示过滤。
7、运行程序,可以抓到包,其中发到192.168.1.2海康硬盘录像机上的包数据有
OPTIONS rtsp://192.168.1.2/Streaming/Channels/201 RTSP/1.0
CSeq: 1
OPTIONS rtsp://192.168.1.2/Streaming/Channels/201 RTSP/1.0
Authorization: Basic YWRtaW46ZGZoMjAxODA2Mjt=
CSeq: 2
DESCRIBE rtsp://192.168.1.2/Streaming/Channels/201 RTSP/1.0
Authorization: Basic YWRtaW46ZGZoMjAxODA2Mjt=
CSeq: 3
SETUP rtsp://192.168.1.2/Streaming/Channels/201/trackID=video RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Authorization: Basic YWRtaW46ZGZoMjAxODA2Mjt=
CSeq: 4
PLAY rtsp://192.168.1.2/Streaming/Channels/201/trackID=video RTSP/1.0
Session: 1877041583
Authorization: Basic YWRtaW46ZGZoMjAxODA2Mjt=
CSeq: 5
8、打开TCP/UDP调试工具,新建TCPClient连接,IP:192.168.1.2,端口:554
注意:去掉十六进制勾选,另外CSeq: 1间有空格,后面有空行,然后点发送数据,就可以收到硬盘录像机192.168.1.2返回的协议数据