最近一段时间一直在研究rtsp和rtp,现在写博客总结一下,也是对知识的一种巩固吧。
rtsp的协议的请求流程及格式请参考一下链接:http://blog.csdn.net/u010425035/article/details/10410851
下面是我用VLC播放器获取海康NVR视频的截图(此次获取是基于TCP的):
下面来看一下针对每一条消息的详细截图:
客户端发送的OPTION消息:
服务器对OPTION回复的200OK消息:
客户端发送的DESCRIBE不带鉴权的消息:
服务器回复的401消息:
客户端请求带鉴权的DESCRIBE消息:
服务器回复200OK消息带SDP消息体:
客户端请求的SETUP消息:
服务器对SETUP回复的200OK消息:
客户端发起PLAY消息:
服务器针对PLAY回复的200OK消息:
服务器发送完PLAY的200OK消息以后就开始发送数据,RTP基于TCP的数据传输截图如下:
客户端发送的TEARDOWN消息:
VLC停止播放时没有收到服务器针对TEARDOWN消息发送的200OK消息,不知道是什么原因,初步怀疑是海康NVR没有发送这个消息。
以上是基于TCP的截图,下面是针对UDP的截图,只截取和TCP不同的部分,相同的部分不再截图,请参考TCP截图:
第一个不同点是SETUP消息及回复部分:
数据传输部分:
总结:以上是RTP基于TCP和UDP传输数据不同的地方,关于RTCP的部分还没有研究,带以后有时间再补上相应的部分截图,有什么不对的地址还希望大家指正。
针对RTP
下面是我写的一个RTSP请求客户端:http://download.csdn.net/detail/xiaoyafang123/9602383