RTSP协议详解

Posted 音视频开发老舅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTSP协议详解相关的知识,希望对你有一定的参考价值。

RTSP协议以客户服务器方式工作它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。

1. 实时流协议RTSP

RTSP[3]协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。

1.1. RTSP协议简介

要实现 RTSP 的控制功能,不仅要有协议,而且要有专门的媒体播放器(media player)和媒体服务器(media server)。媒体服务器与媒体播放器的关系是服务器与客户的关系。

媒体服务器与普通的万维网服务器的最大区别就是媒体服务器支持流式音频和视频的传送,因而在客户端的媒体播放器可以边下载边播放(需要先缓存一小段时间的节目)。但从普通万维网服务器下载多媒体节目时,是先将整个文件下载完毕,然后再进行播放。

图1 RTSP与RTP和RTCP的关系

RTSP 仅仅是使媒体播放器能控制多媒体流的传送。

因此,RTSP 又称为带外协议,而多媒体流是使用 RTP 在带内传送的。

1.2.    RTSP的报文结构

RTSP有两类报文:请求报文和响应报文。请求报文是指从客户向服务器发送请求报文,响应报文是指从服务器到客户的回答。

由于 RTSP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

RTSP报文由三部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行,RTSP请求报文的结构如图2所示。

图2 RTSP请求报文的结构

RTSP请求报文的方法包括:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、GET_PARAMETER和SET_PARAMETER。RTSP请求报文的常用方法及作用如表1所示。

表1 RTSP请求报文的常用方法及作用

响应报文的开始行是状态行,RTSP响应报文的结构如图3所示。

图3 RTSP响应报文的结构

1.3.    RTSP交互过程

C表示RTSP客户端,S表示RTSP服务端

 C->S: OPTION request            //询问S有哪些方法可用

S->C: OPTION response        //S回应信息中包括提供的所有可用方法

 C->S: DESCRIBE request      //要求得到S提供的媒体初始化描述信息

S->C: DESCRIBE response      //S回应媒体初始化描述信息,主要是sdp

 C->S: SETUP request         //设置会话属性,以及传输模式,提醒S建立会话

S->C: SETUP response         //S建立会话,返回会话标识符及会话相关信息

 C->S: PLAY request          //C请求播放

S->C: PLAY response          //S回应请求信息

S->C: 发送流媒体数据

 C->S: TEARDOWN request     //C请求关闭会话

S->C: TEARDOWN response     //S回应请求

上述的过程是标准的RTSP流程,其中第3步和第4步是必需的。

本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

RTSP(Real Time Streaming Protocol), 实时流传输协议, 是TCP/IP协议体系中的一个应用层协议, 由哥伦比亚大学, 网景和RealNetworks公司提交的IETF RFC标准. 该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据. RTSP在体系结构上位于RTP和RTCP之上, 它使用TCP或RTP完成数据传输.

RTSP 提供了一个可扩展框架, 使实时数据, 如音频与视频的受控点播成为可能. 数据源包括现场数据与存储在剪辑中数据. 该协议目的在于控制多个数据发送连接, 为选择发送通道, 如UDP, 组播UDP与TCP, 提供途径, 并为选择基于RTP上发送机制提供方法.

它的语法和运作跟HTTP 1.1类似, 但并不特别强调时间同步, 所以比较能容忍网络延迟.

HTTP与RTSP相比, * HTTP传送html. HTTP请求由客户机发出, 服务器作出响应 * RTSP传送的是多媒体数据. 使用RTSP时, 客户机和服务器都可以发出请求, 即RTSP可以是双向的.

RTSP是用来控制声音或影像的多媒体串流协议, 并允许同时多个串流需求控制, 传输时所用的网络通讯协议并不在其定义的范围内, 服务器端可以自行选择使用TCP或UDP来传送串流内容.

而 前面提到的允许同时多个串流需求控制(Multicast), 除了可以降低服务器端的网络用量, 更进而支持多方视讯会议(Video Conference). 因为与HTTP1.1的运作方式相似, 所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于RTSP, 并因RTSP具有重新导向功能, 可视实际负载情况来转换提供服务的服务器, 以避免过大的负载集中于同一服务器而造成延迟.

该协议用于C/S模型, 是一个基于文本的协议, 用于在客户端和服务器端建立和协商实时流会话.

实 时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体. 尽管连续媒体流与控制流交换是可能的, 通常它本身并不发送连续流. 换言之, RTSP充当多媒体服务器的网络远程控制. RTSP连接没有绑定到传输层连接, 如TCP. 在RTSP连接期间, RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求. 此外, 可使用无连接传输协议, 如UDP. RTSP流控制的流可能用到RTP, 但RTSP操作并不依赖用于携带连续媒体的传输机制.

协 议支持的操作如下: (1)从媒体服务器上检索媒体: 用户可通过HTTP或其它方法提交一个演示描述. 如演示是组播, 演示式就包含用于连续媒体的的组播地址和端口. 如演示仅通过单播发送给用户, 用户为了安全应提供目的地址. (2)媒体服务器邀请进入会议: 媒体服务器可被邀请参加正进行的会议, 或回放媒体, 或记录其中一部分, 或全部. 这种模式在分布式教育应用上很有用, 会议中几方可轮流按远程控制按钮. (3)将媒体加到现成讲座中: 如服务器告诉用户可获得附加媒体内容, 对现场讲座显得尤其有用. 如HTTP/1.1中类似, RTSP请求可由代理, 通道与缓存处理.

流媒体专家RTSP协议详解I

1.概述

RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。类似HTTP协议的流控制协议,它们都使用纯文本来发送信息,而且rtsp协议的语法也和HTTP类似,和HTTP协议相比,RTSP协议所不同的地方是,RTSP协议是有状态的协议,而HTTP是无状态的协议。RTSP通过维护一个session来维护其状态的转换。RTSP协议的默认端口是554,默认的承载协议为TCP。

2.RTSP的特性

(1)流控分离:从控制逻辑上来说RTSP和FTP相似,控制流和数据流是分开的。
(2)可扩展性:因为RTSP协议是基于文本的协议所以

以上是关于RTSP协议详解的主要内容,如果未能解决你的问题,请参考以下文章

视频编解码 - RTP 与 RTCP

走进音视频的世界——Opus编解码协议

实时AAC音频/本地AAC音视频硬解码详细介绍附带Demo

H.264/AVC视频编解码技术详解十熵编码算法:CAVLC原理

RTSP 媒体协议流的录制方案及其覆盖策略详解

H.264/AVC视频编解码技术详解二十四帧间预测编码:解码显示顺序与图像管理