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

 

https://github.com/ImSjt/RtspServer

posted @ 2020-08-31 09:19  lianhuaren  阅读(107)  评论(0编辑  收藏  举报