目录

  • 一、介绍
  • 二、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 请求

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关闭会话,退出

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

RTSP协议基本分析相关推荐

  1. RTSP协议实例分析

    1. 前言 互联网上关于RTSP的文章很多,但是大多数都是抽象的理论介绍,本文将从实际例子解说RTSP协议,不求面面俱到,但求简单易懂.RTSP(Real-Time Streaming Protoco ...

  2. RTSP协议 RTP协议

    RTSP(Real-Time Streaming Protocol)实时流式协议 需要注意的是,RTSP本身不传输数据,音视频流数据是通过RTP传输的. C/S请求应答整体流程: 客户端->&g ...

  3. RTSP再学习 -- RTSP协议分析(转载)

    最近一直在看 RTSP,但是RTSP协议是个啥?还没有搞清楚. 首先流媒体百度百科上有这样一段,从基本的名字上或多或少可以理解一下这些传输协议的区别.这很重要!! 传输协议 1.RSVP:资源预留协议 ...

  4. rtsp 协议读取视频进行分析并返回结果到websocket server

    一.rtsp 协议读取视频 1.1读取方法ffmpeg 这种方法和opencv是一样的,因为opencv使用的就是ffmpeg,结果不是很好,断线重连不是很好做,有一个好处是不用引入其他库,ffmpe ...

  5. 第6季2:基于RTSP协议的实时视频流传输的源码分析

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 前言 博文第一季2:HI3518EV200的初体验中,所提供的测试文件sample_venc实现了基于RTSP协议的实时视频流传输功能. ...

  6. RTSP协议视频智能分析平台EasyNVR在编码格式不同的情况下会导致视频无法播放吗?

    RTSP协议的视频智能分析平台EasyNVR内接入的视频通道可以通过平台进行网页直播,并且支持市面上大部分的RTSP/Onvif协议设备:IP Camera/NVR/DVR/编码器等,直播便捷稳定,是 ...

  7. RTSP协议的一些分析(三)——简单的rtsp服务器的实现

    目录 一.简介 二.套接字的创建 三.解析请求 四.OPTIONS的响应 五.DESCRIBE的响应 六.SETUP的响应 七.PLAY的响应 八.源码 一.简介 RTSP服务器有两个部分组成,一个是 ...

  8. RTSP 协议分析 (一)

    原文地址为: RTSP 协议分析 (一) RTSP 协议分析 1.概述:  RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协 ...

  9. RTSP协议详解及实例分析

    1.RTSP简介 RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层.RTSP以客户端方式工作,对流媒体提供播放.暂停.后退.前进等操作. ...

最新文章

  1. ATS 5.3.0中parent.config配置文件解读
  2. 微软(中国)CTO韦青:人工智能是拿来用的,不是拿来炒的
  3. System.Object 基类
  4. 如何解决Silverlight InitializeError #2103 - Invalid or malformed application: Check manifest
  5. cv2.waitKey(x)解析
  6. 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188
  7. Python+OpenCV 十几行代码模仿世界名画
  8. Uipath 学习栏目基础教学:1Uipath设计器介绍
  9. boost::describe模块实现计算基础修饰符的测试程序
  10. 关于寻路算法的一些思考(2):Heuristics 函数
  11. C# struct的陷阱:无法修改“...”的返回值,因为它不是变量
  12. TeamViewer免费版和付费版有什么不同
  13. 飞翔的圆(Flappy Bird)游戏源码完整版
  14. CPP_template
  15. Linux与Windows之间实现文件实时同步的方案
  16. 【细胞分割】基于matlab GUI形态学算法红细胞计数【含Matlab源码 638期】
  17. Linux 应急响应:入侵排查就应该这么做
  18. 戴尔t系列服务器拆机,拆解:规整扎实条理清晰的戴尔T7600_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  19. 财税打印机LQ 670K+ win10驱动
  20. 光耦w314的各引脚图_a3140光耦用什么代替

热门文章

  1. Vue.js 相关知识(动画)
  2. rabbitmq简单运用
  3. linux ubuntu 关于vim得一些基本命令
  4. windows下github 出现Permission denied (publickey)
  5. 【知识梳理1】Android触摸事件机制
  6. (转载)20分钟读懂程序集
  7. Java FlameGraph 火焰图
  8. mac boot2docker certs not valid with 1.7
  9. cs模式下,显示网络图片一例
  10. 11计算机,11-计算机科学与技术