RTSP信令的交互

RTSP 有如下信令: 
 


在这之前建立一个TCP socket用来作信令交互,叫做TCPSockfd 
OPTIONS: 
功能: 请求用于返回服务端支持的 RTSP 命令列表 
信令交互: 
C->S:  
OPTIONS * RTSP/1.0 
CSeq: 1 
Require: implicit-play 
Proxy-Require: gzipped-messages 

S->C:  
RTSP/1.0 200 OK 
CSeq: 1 
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE 
这个信令不常用,一般client端知道对接的服务器有哪些命令 
CSeq:信令序列号,后面的序列号累计增加。 


DESCRIBE: 
功能: 用于请求指定的媒体流的 SDP 描述信息 。 
信令交互: 
C->S: 
DESCRIBE rtsp://10.50.108.17/vod/957509 RTSP/1.0 
CSeq: 2 
Accept: application/sdp 
S->C: 
RTSP/1.0 200 OK 
CSeq: 2 
Content-Type: application/sdp 
Content-Length: 376 

v=0 
o=- 2890844526 2890842807 IN IP4 10.50.108.17 
s=RTSP Session 
t=0 0 
r=15 0 0 0 
i= 
b=AS:1600 
c=IN IP4 0.0.0.0 
m=video 0 RTP/AVP 33 
a=rtpmap:33 MP2T/90000 
a=range:npt= 0.000-566.000//媒体流的开始时间和结束时间,以S为单位 


在descripe之后,我们建立一个UDP的socket,用于RTP包的传输,UDPSockfd,bind到一个端口,比如: 26958 
SETUP : 
功能:  命令用于配置数据交付的方法 
信令交互: 
C->S: 
SETUP rtsp://10.50.108.17/vod/957509/ RTSP/1.0 
CSeq: 2 
Transport: RTP/AVP;unicast;client_port= 26958 -26959 //通知server 发送RTP包给client这个端口,后面的26959是rtcp端口,一般没有实现 
User-Agent: CTC RTSP 1.0 
S->C: 
RTSP/1.0 200 OK 
CSeq: 2 
Session: 10145778//rtsp的session,之后的信令都要带上这个参数,并保持一致 
Transport: MP2T/RTP/UDP;unicast; destination=172.19.133.128:26958;control_address=10.50.108.17:554 ;mode=play;QAM_FRQ=131073 


172.19.133.128:26958 client端IP和port 

10.50.108.17:554 server端IP和port 


setup之后有必要做一个natdetect:私有信令,这个信令是是用UDPSockfd发的,收也是UDPSockfd来收,这样就做了一个nat穿越 
NAT_DETECT 
C->S: 
NAT_DETECT rtsp://10.50.108.17/vod/957509 RTSP/1.0 
CSeq: 1 
S->C: 




PLAY : 
功能:请求流 
C->S 
rtsp://10.50.108.17/vod/957509 RTSP/1.0 
CSeq: 3 
Session: 10145778 
User-Agent: CTC RTSP 1.0 


S->C: 
RTSP/1.0 200 OK 
CSeq: 3 
Session: 10145778 
Scale: 1.0 
Range: npt=0.000-0.000 


PAUSE 
功能:暂停 
C->S 
PAUSE rtsp://10.50.108.17/vod/957509 RTSP/1.0 
CSeq: 5 
Session: 10145778 
User-Agent: CTC RTSP 1.0 
S->C 
RTSP/1.0 200 OK 
CSeq: 5 
Session: 10016005 


GET_PARAMETER :心跳作用 
C->S: 
GET_PARAMETER rtsp://10.50.108.17/vod/957509 RTSP/1.0 
CSeq: 4 
Session: 10145778 
User-Agent: CTC RTSP 1.0 
S->C: 
RTSP/1.0 200 OK 
CSeq: 4 
Session: 10145778 


ANNOUNCE : 
也是用UDPSockfd来收的,用来处理边界值 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值