rtsp协议标准流程

RTSP C-REQ Format:
MethodName URL RTSPVersion CR LF
MessageHead: CR LF CR LF
MessageBody: CR LF


RTSP S-RES Format:
MethodName RTSPVersion StatusCode StatusCodeDes CR LF
MessageHead: CR LF CR LF
MessageBody: CR LF


explain:
MethodName: OPTIONS DESCRIBE SETUP PLAY TEARDOWN GET_PARAMETER,SET_PARAMETER,PAUSE,REDIRECT等.
CR LF: \r \n


example:
C-REQ(1):
OPTIONS rtsp://192.168.22.136:5000/v0 RTSP/1.0
CSeq: 1 //每个消息都有序号来标记,第一个包通常是OPTIONS请求消息
User-Agent: rtsp1.0Agent


S-RES(1):
RTSP/1.0 200 OK
Cseq: 1         //每个回应消息的cseq数值和请求消息的cseq相对应
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY //服务器提供的可用的方法








C-REQ(2):
DESCRIBE rtsp://192.168.20.136:5000/v0 RTSP/1.0
CSeq: 2
Accept: application/sdp
Authorization: Basic YWRtaW46YWRtaW4= //有认证,不需要认证时不需要该字段
User-Agent: rtsp1.0Agent


S-RES(2):
RTSP/1.0 200 OK
Cseq: 2
Date: Sat Feb  5 22:49:39 2009 GMT
Content-Type: application/sdp
Content-Length: 182




v=0                     //以下都是sdp信息
o=- 0 0 IN IPV4 127.0.0.1
t=0 0
s=No Name
a=tool:libavformat
m=video 0 RTP/AVP 96    //m表示媒体描述,下面是对会话中视频通道的媒体描述
b=AS:2000
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=1
a=control:streamid=0    //streamid=0表示视频流用的是通道0








C-REQ(3):
SETUP rtsp://192.168.20.136:5000/v0/streamid=0 RTSP/1.0    
CSeq: 3
Authorization: Basic YWRtaW46YWRtaW4=
Transport: RTP/AVP/TCP;unicast;interleaved=0-1      
User-Agent: rtsp1.0Agent


C-REQ(3):
SETUP rtsp://192.168.20.136:5000/v0/streamid=0 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=3008-3009
Authorization: Basic YWRtaW46YWRtaW4=
User-Agent: rtsp1.0Agent


URI中带有streamid=0,表示对该通道进行设置。
Transport参数设置了传输模式。RTP/AVP/TCP表示通过TCP传输RTP包,RTP/AVP表示使用UDP传输RTP包。
unicast表示单播。interleaved值有两个:0和1,0表示RTP包,1表示RTCP包,接收端根据interleaved的值来区别是哪种数据包。
client_port值有3008和3009,3008表示客户端接收RTP包的端口,3009表示客户端接收RTCP包的端口,服务端要分别将RTP包和RTCP包发送到这两个端口。


S-RES(3):
RTSP/1.0 200 OK
CSeq: 3
Date: Sat Feb  5 22:35:27 2009 GMT
Session: a522bbb4335617db
Transport: RTP/AVP/TCP;interleaved=0-1


S-RES(3):
RTSP/1.0 200 OK
CSeq: 3
Date: Sat Feb  5 22:49:39 2009 GMT
Session: 01fa4ca2566a6301      //服务器回应的会话标识符
Transport: RTP/AVP/UDP;unicast;client_port=3008-3009;server_port=1024-1025








C-REQ(4):
PLAY rtsp://192.168.20.136:5000/v0 RTSP/1.0
CSeq: 4
Session: a522bbb4335617db      //SETUP返回的会话标识符
Range: npt=0.000-              //设置播放时间的范围
User-Agent: rtsp1.0Agent


S-RES(4):
RTSP/1.0 200 OK
CSeq: 4
Date: Sat Feb  5 22:49:39 2009 GMT
Session: a522bbb4335617db








C-REQ(5):
TEARDOWN rtsp://192.168.20.136:5000/v0 RTSP/1.0
CSeq: 5
Session: a522bbb4335617db
User-Agent: rtsp1.0Agent


S-RES(5):
RTSP/1.0 200 OK
Cseq: 5
Date: Sat Feb  5 22:49:47 2009 GMT
Session: a522bbb4335617db




ps:
sdp的格式
v=<version>
o=<username> <session id> <version> <network type> <address type> <address>
s=<session name>
i=<session description>
u=<URI>
e=<email address>
p=<phone number>
c=<network type> <address type> <connection address>
b=<modifier>:<bandwidth-value>
t=<start time> <stop time>
r=<repeat interval> <active duration> <list of offsets from start-time>
z=<adjustment time> <offset> <adjustment time> <offset> ....
k=<method>
k=<method>:<encryption key>
a=<attribute>
a=<attribute>:<value>
m=<media> <port> <transport> <fmt list>
v = (协议版本)
o = (所有者/创建者和会话标识符)
s = (会话名称)
i = * (会话信息)
u = * (URI 描述)
e = * (Email 地址)
p = * (电话号码)
c = * (连接信息)
b = * (带宽信息)
z = * (时间区域调整)
k = * (加密密钥)
a = * (0 个或多个会话属性行) 
时间描述:
t = (会话活动时间)
r = * (0或多次重复次数)
媒体描述:
m = (媒体名称和传输地址)
i = * (媒体标题)
c = * (连接信息 — 如果包含在会话层则该字段可选)
b = * (带宽信息)
k = * (加密密钥)
a = * (0 个或多个媒体属性行)
带*为可选信息。
协议用于C/S模型,是一个基于文本的协议,用于在客户端和服务器端建立和协商实时流会话。   实时流协议RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。   实时流协议RTSP)建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。换言之,RTSP充当多媒体服务器的网络远程控制。RTSP连接没有绑定到传输层连接,如TCP。在RTSP连接期间,RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求。此外,可使用无连接传输协议,如UDP。RTSP流控制的流可能用到RTP,但RTSP操作并不依赖用于携带连续媒体的传输机制。   协议支持的操作如下:   (1)从媒体服务器上检索媒体:用户可通过HTTP或其它方法提交一个演示描述。如演示是组播,演示式就包含用于连续媒体的的组播地址和端口。如演示仅通过单播发送给用户,用户为了安全应提供目的地址。   (2)媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部。这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮。   (3)将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。如HTTP/1.1中类似,RTSP请求可由代理、通道与缓存处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值