目录

  • 一、介绍
  • 二、RTSP与HTTP
  • 三、RTSP推流基本过程
  • 1、OPTION 查询服务器端可用方法
  • 1.1、Client 请求
  • 1.2、Server 回复
  • 2、ANNOUNCE 发送媒体描述信息
  • 2.1、Client 请求
  • 2.2、Server 回复
  • 3、SETUP建立RTSP会话
  • 3.1、Client 请求(视频流)
  • 3.2、Server 回复(视频流)
  • 3.3、Client 请求(音频流)
  • 3.4、Server 回复(音频流)
  • 4、RECORD请求传送数据
  • 4.1、Client 请求
  • 4.2、Server 回复
  • 5、RTCP 播放控制、RTP视频数据
  • 5.1、Client 发送(RTCP)
  • 5.2、Client 发送(RTP)
  • 6、RTCP 播放控制、RTP音频数据
  • 6.1、Client 发送(RTCP)
  • 6.2、Client 发送(RTP)
  • 7、TEARDOWN关闭会话
  • 7.1、Client 请求
  • 7.2、Server 回复
  • 四、RTSP拉流基本过程
  • 1、OPTION 查询服务器端可用方法
  • 1.1、Client 请求
  • 1.2、Server 回复
  • 2、DESCRIBE 获取媒体描述信息
  • 2.1、Client 请求
  • 2.2、Server 回复
  • 3、SETUP建立RTSP会话
  • 3.1、Client 请求(视频流)
  • 3.2、Server 回复(视频流)
  • 3.3、Client 请求(音频流)
  • 3.4、Server 回复(音频流)
  • 4、PLAY请求开始传送数据
  • 4.1、Client 请求
  • 4.2、Server 回复
  • 5、RTP数据传送播放
  • 5.1、Server 发来 (视频流)
  • 5.2、Server 发来 (音频流)
  • 6、TEARDOWN关闭会话,退出


一、介绍

RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,
RTSP协议与HTTP协议类似。
RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的⻆色。尽管有时可以把
RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据
的传送可通过RTP/RTCP等协议来完成。
一次基本的RTSP操作过程是:首先,客户端连接到流服务器并发送一个RTSP描述命令(DESCRIBE)。流
服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。客户端再分析该SDP描
述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令告诉服务器客户端用于接收
媒体数据的端口。流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始在UDP上传送
媒体流(RTP包)到客户端。 在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。
最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话。

二、RTSP与HTTP

  1. RTSP引入了几种新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的协议标识符,RTSP
    为rtsp 1.0,HTTP为http 1.1。
  2. HTTP是无状态的协议,而RTSP为每个会话保持状态 session的概念。
  3. RTSP协议的客户端和服务器端都可以发送Request请求,而在HTTP 协议中,只有客户端能发送
    Request请求。
  4. 在RTSP协议中,载荷数据一般是通过带外方式来传送的(除了交织的情况),及通过RTP协议在不同的
    通道中来传送载荷数据。而HTTP协议的载荷数据都是通过带内方式传送的,比如请求的网页数据是在回应
    的消息体中携带的。
  5. 使用ISO 10646(UTF-8) 而不是ISO 8859-1,以配合当前HTML的国际化。
  6. RTSP使用URI请求时包含绝对URI。而由于历史原因造成的向后兼容性问题,HTTP/1.1只在请求中包
    含绝对路径,把主机名放入单独的标题域中。

三、RTSP推流基本过程

1、OPTION 查询服务器端可用方法

1.1、Client 请求

java rtsp 解码 rtsp解析_流媒体

1.2、Server 回复

java rtsp 解码 rtsp解析_rtsp_02

2、ANNOUNCE 发送媒体描述信息

2.1、Client 请求

java rtsp 解码 rtsp解析_srs_03

2.2、Server 回复

java rtsp 解码 rtsp解析_流媒体_04

3、SETUP建立RTSP会话

3.1、Client 请求(视频流)

java rtsp 解码 rtsp解析_java rtsp 解码_05

3.2、Server 回复(视频流)

java rtsp 解码 rtsp解析_流媒体_06

3.3、Client 请求(音频流)

java rtsp 解码 rtsp解析_rtsp_07

3.4、Server 回复(音频流)

java rtsp 解码 rtsp解析_rtsp_08

4、RECORD请求传送数据

4.1、Client 请求

java rtsp 解码 rtsp解析_java rtsp 解码_09

4.2、Server 回复

java rtsp 解码 rtsp解析_java rtsp 解码_10

5、RTCP 播放控制、RTP视频数据

5.1、Client 发送(RTCP)

java rtsp 解码 rtsp解析_音频编码解码_11

5.2、Client 发送(RTP)

java rtsp 解码 rtsp解析_rtsp_12

6、RTCP 播放控制、RTP音频数据

6.1、Client 发送(RTCP)

java rtsp 解码 rtsp解析_java rtsp 解码_13

6.2、Client 发送(RTP)

java rtsp 解码 rtsp解析_srs_14

7、TEARDOWN关闭会话

7.1、Client 请求

java rtsp 解码 rtsp解析_音频编码解码_15

7.2、Server 回复

java rtsp 解码 rtsp解析_音频编码解码_16

四、RTSP拉流基本过程

1、OPTION 查询服务器端可用方法

1.1、Client 请求

java rtsp 解码 rtsp解析_java rtsp 解码_17

1.2、Server 回复

java rtsp 解码 rtsp解析_rtsp_18

2、DESCRIBE 获取媒体描述信息

2.1、Client 请求

java rtsp 解码 rtsp解析_音频编码解码_19

2.2、Server 回复

java rtsp 解码 rtsp解析_srs_20

3、SETUP建立RTSP会话

3.1、Client 请求(视频流)

java rtsp 解码 rtsp解析_流媒体_21

3.2、Server 回复(视频流)

java rtsp 解码 rtsp解析_音频编码解码_22

3.3、Client 请求(音频流)

java rtsp 解码 rtsp解析_java rtsp 解码_23

3.4、Server 回复(音频流)

java rtsp 解码 rtsp解析_srs_24

4、PLAY请求开始传送数据

4.1、Client 请求

java rtsp 解码 rtsp解析_java rtsp 解码_25

4.2、Server 回复

java rtsp 解码 rtsp解析_rtsp_26

5、RTP数据传送播放

5.1、Server 发来 (视频流)

java rtsp 解码 rtsp解析_音频编码解码_27

5.2、Server 发来 (音频流)

java rtsp 解码 rtsp解析_流媒体_28

6、TEARDOWN关闭会话,退出

客户端发送TEARDOWN请求结束会话,与推流一样。