RTSP协议讲解

news/2024/10/9 11:19:22/

1.RTSP协议

rtsp,英文全称 Real Time Streaming ProtocolRFC2326,实时流传输协议,是 TCP/IP 协议体系中的一个应用层协议。

RTSP 交互流程

1OPTIONS

C--->S

客户端向服务器端发现 OPTIONS,请求可用的方法。

S--->C

服务器端回复客户端,消息中包含当前可用的方法。

2DESCRIBE

C--->S

客户端向服务器请求媒体描述文件,一般通过 rtsp 开头的 url 来发起请求,格式为 sdp

S--->C

服务器回复客户端 sdp 文件,该文件告诉客户端服务器有哪些音视频流,有什么属性,如编

解码器信息,帧率等。

3SETUP

为音视频数据的传输准备通道

C--->S

客户端向服务器端发起建立连接请求,请求建立会话连接,准备开始接收音视频数据,

请求信息描述了期望音视频数据包基于 UDP 还是 TCP 传输,指定了 RTPRTCP 端口,以及

是单播还是组播等信息!

S--->C

服务器端收到客户端请求后,根据客户端请求的端口号确定发送控制数据的端口以及音

视频数据的端口!

4PLAY

C--->S

客户端向服务端请求播放媒体。

S--->C

服务器回复客户端 200 OK! 之后开始通过 SETUP 中指定的端口开始发送数据!

5TEARDOWN

C---->S

结束播放的时候,客户端向服务器端发起结束请求

S--->C

服务端收到消息后,向客户端发送 200 OK,之后断开连接

上述的流程基本涵盖了 RTSP 的流程,当然,RTSP 除此之外,还有 PAUSESCALE

GET_PARAMETERSET_PARAMETER 等参数。

RTSP 的消息有两大类,一是请求消息,一是回应消息,两种消息的格式不同。

请求消息格式:

方法 URI RTSP 版本 CR LF

消息头 CR LF CR LF

消息体 CR LF

回应消息格式:

RTSP 版本 状态码 解释 CR LF

消息头 CR LF CR LF

消息体 CR LF

2.RTP协议

RTP:(Real-time Transport Protocol)是用于 Internet 上针对多媒体数据流的一种传输层协议.RTP 协议和 RTCP 一起使用。

RTP 不像 http ftp 可完整的下载整个影视文件,它是以固定的数据率在网络上发送数据,客户端也是按照这种速度观看影视文件,当影视画面播放过后,就不可以再重复播放,除非重新向服务器端要求数据。RTP 的典型应用建立在 UDP 上,但也可以在 TCP ATM 等其他协议之上工作。RTP 本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠 RTCP 提供这些服务。

3.RTCP协议

RTCP:实时传输控制协议,是实时传输协议(RTP)的一个姐妹协议.

RTCP 负责管理传输质量在当前应用进程之间交换控制信息。在 RTP 会话期间,各参与者周期性地传送 RTCP 包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚

至改变有效载荷类型。RTP 和 RTCP 配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。

当应用程序开始一个 rtp 会话时将使用两个端口:一个给 rtp,一个给 rtcp

rtp 本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠 rtcp 提供这些服务。在 rtp 的会话之间周期的发放一些 rtcp 包以用来传监听服务质量和交换会话用户信息等功能。rtcp 包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp 和rtcp 配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。根据用户间的数据传输反馈信息,可以制定流量控制的策略,而会话用户信息的交互,可以制定会话控制的策略。


http://www.ppmy.cn/news/1536604.html

相关文章

阿里云CDN设置阀值的指南

在如今这个信息爆炸的时代,网站的访问速度和用户体验变得尤为重要。阿里云CDN(内容分发网络)作为一种高效的解决方案,帮助用户加速网站内容的分发。然而,如何合理设置CDN的阀值,确保资源的高效利用&#xf…

使用 Helsinki-NLP 中英文翻译本地部署 - python 实现

通过 Helsinki-NLP 本地部署中英文翻译功能。该开源模型性价比相对高,资源占用少,对于翻译要求不高的应用场景可以使用,比如单词,简单句式的中英文翻译。 该示例使用的模型下载地址:【免费】Helsinki-NLP中英文翻译本…

QD1-P1 HTML、CSS与JS三者之间的关系

今天开始学习前端基础,新建专题《前端学习笔记1》保存前端基础学习笔记。 专题文章命名以qd1开头。 源课程 视频教程:【Web前端-最通俗易懂HTML、CSS与JS合集 1天速成】 up:遥遥温柔乡 在B站随便搜索了一个前端课程,共91节&am…

卸载各种服务的详尽方法

HTTP 服务器软件(如 Apache 或 Nginx) 以下是一些常见的卸载方法: **Apache(httpd)**: 1. 如果是通过 yum 安装的: sudo yum remove httpd 2. 如果是通过源码编译安装的,需要进入…

【探索艺术新纪元:Midjourney中文版,让创意无界!】

🎨 艺术,从此触手可及 在这个数字时代,Midjourney中文版正引领一场艺术创作的革命。作为一款前沿的AI绘画工具,它利用深度学习技术,将你的想象转化为触手可及的艺术作品。无需深厚的绘画功底,只需简单的文…

C#WPF label的content中放置控件实例

本文讲解C#WPF label的content中放置控件实例。 在Label控件中添加一个button按钮控件,并使居中显示。实现代码如下: 实例 <Windowx:Class="ContentDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x=&q…

clickhouse数据字典

前言&#xff1a; clickhouse的安装见 https://blog.csdn.net/weixin_41463944/article/details/142534145?spm1001.2014.3001.55011、需要在路径/etc/clickhouse-serve下定义*_dictionary.xml结尾的配置文件 2、需要准备organization.csv和sales.csv本地测试文件&#xff08…

【数据分享】2000—2023年我国省市县三级逐月植被覆盖度(FVC)数值(Shp/Excel格式)

之前我们分享过2000—2023年我国250米分辨率逐月植被覆盖度&#xff08;FVC&#xff09;栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;该数据来源于高吉喜等学者在国家青藏高原科学数据中心平台上分享的数据&#xff0c;合成方式采用月最大值合成&…