rtsp信令
1.
二、RTSP协议详解
rtsp的交互过程就是客户端请求,服务器响应,下面看一看请求和响应的数据格式
2.1 RTSP数据格式
RTSP协议格式与HTTP协议格式类似
RTSP客户端的请求格式
method url vesion\r\n
CSeq: x\r\n
xxx\r\n
...
\r\n
method:方法,表明这次请求的方法,rtsp定义了很多方法,稍后介绍
url:格式一般为rtsp://ip:port/session,ip表主机ip,port表端口好,如果不写那么就是默认端口,rtsp的默认端口为554,session表明请求哪一个会话
version:表示rtsp的版本,现在为RTSP/1.0
CSeq:序列号,每个RTSP请求和响应都对应一个序列号,序列号是递增的
RTSP服务端的响应格式
vesion 200 OK\r\n
CSeq: x\r\n
xxx\r\n
...
\r\n
version:表示rtsp的版本,现在为RTSP/1.0
CSeq:序列号,这个必须与对应请求的序列号相同
2.2 RTSP请求的常用方法
方法 描述
OPTIONS 获取服务端提供的可用方法
DESCRIBE 向服务端获取对应会话的媒体描述信息
SETUP 向服务端发起建立请求,建立连接会话
PLAY 向服务端发起播放请求
TEARDOWN 向服务端发起关闭连接会话请求
SETUP
C–>S
SETUP rtsp://192.168.31.115:8554/live/track0 RTSP/1.0\r\n
CSeq: 4\r\n
Transport: RTP/AVP;unicast;client_port=54492-54493\r\n
\r\n
客户端发送建立请求,请求建立连接会话,准备接收音视频数据
解析一下Transport: RTP/AVP;unicast;client_port=54492-54493\r\n
RTP/AVP:表示RTP通过UDP发送,如果是RTP/AVP/TCP则表示RTP通过TCP发送
unicast:表示单播,如果是multicast则表示多播
client_port=54492-54493:由于这里希望采用的是RTP OVER UDP,所以客户端发送了两个用于传输数据的端口,客户端已经将这两个端口绑定到两个udp套接字上,54492表示是RTP端口,54493表示RTCP端口(RTP端口为某个偶数,RTCP端口为RTP端口+1)
S–>C
RTSP/1.0 200 OK\r\n
CSeq: 4\r\n
Transport: RTP/AVP;unicast;client_port=54492-54493;server_port=56400-56401\r\n
Session: 66334873\r\n
\r\n
服务端接收到请求之后,得知客户端要求采用RTP OVER UDP发送数据,单播,客户端用于传输RTP数据的端口为54492,RTCP的端口为54493
服务器也有两个udp套接字,绑定好两个端口,一个用于传输RTP,一个用于传输RTCP,这里的端口号为56400-56401
之后客户端会使用54492-54493这两端口和服务器通过udp传输数据,服务器会使用56400-56401这两端口和这个客户端传输数据
https://blog.csdn.net/weixin_42462202/article/details/98986535