ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RTSP协议详解

2020-11-29 22:33:29  阅读:205  来源: 互联网

标签:LF 协议 请求 RTSP request 会话 详解 CR


1.RTSP协议简介

         RTSP(Real Time Streaming Protocol,实时流协议),是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,能够提供可控制的,按需 传输的实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存储的文件。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。

        服务器端可以自行选择使用TCP或UDP来传送串流内容(传输数据可以通过传输层的TCP/UDP协议,RTSP也提供了基于RTP传输机制的一些有效的方法),它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而且允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,还可以支持多方视频会议(Video onference)。 因为与HTTP1.1的运作方式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

2、rtsp特点

       rtsp是有状态的,rtsp的命令总是按照顺序来发送,某个命令总在另外一个命令之前要发送。Rtsp不管处于什么状态都不会去断掉连接。rtsp协议使用554端口。

                                      

 

RTSP负责建立和控制会话,rtp负责多媒体的传输,rtcp配合rtp做控制和流量统计,他们是合作的关系。

RTSP消息格式:

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

1).请求消息:

方法 URI RTSP版本 CR LF

消息头 CR LF CR LF

消息体 CR LF

  其中方法包括OPTIONS、SETUP、PLAY、TEARDOWN等待,URI是接收方(服务端)的地址,例如:rtsp://192.168.22.136:5000/v0,RTSP版本一般都是RTSP/1.0。每行后面的CR LF表示回车换行,需要接收端有相应的解析,最后一个消息头需要有两个CR LF。

2).回应消息:

RTSP版本 状态码 解释 CR LF

消息头 CR LF CR LF

消息体 CR LF

其中RTSP版本一般都是RTSP/1.0,状态码是一个数值,200表示成功,解释是与状态码对应的文本解释。

状态码由三位数组成,表示方法执行的结果,定义如下:

1XX:保留,将来使用;

2XX:成功,操作被接收、理解、接受(received,understand,accepted);

3XX:重定向,要完成操作必须进行进一步操作;

4XX:客户端出错,请求有语法错误或无法实现;

5XX:服务器出错,服务器无法实现合法的请求。

 

3、简单的RTSP交互过程

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

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

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

 

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

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

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

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

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

4.S->C:PLAY response //S回应该请求的信息

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

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

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

        上述的过程是标准的、友好的rtsp流程,但实际的需求中并不一定按部就班来。其中第3和4步是必需的!第一步,只要服务器客户端约定好,有哪些方法可 用,则OPTIONS请求可以不要。第二步,如果我们有其他途径得到媒体初始化描述信息(比如http请求等等),则我们也不需要通过RTSP中的 DESCRIBE请求来完成。第五步,可以根据系统需求的设计来决定是否需要。

 

 

 

 

 

 

 

 

 

 

 

标签:LF,协议,请求,RTSP,request,会话,详解,CR
来源: https://blog.csdn.net/fanyun_01/article/details/110352353

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有