RTSP协议ppt
RTSP协议
状态码
状态码是服务器试图理解和满足请求报文的结果代码,由三位数 字组成,其中第1位表示响应的分类,一共是5大类,剩余两位 并未分类: 1xx,Informational 接受请求,持续处理; 2xx,Success 成功地接受理解行为; 3xx,Redirection 为了完成请求采取进一步的措施; 4xx,Client Error 请求存在语法错误,或不能被执行; 5xx,Server Error 服务器不能执行正确的请求。 状态码是可扩展的,对RTSP应用软件来说没有必要理解全部注 册状态码的含义,但需要理解第1位表示的类别,这样就可以将 一些不能够识别的状态码等同于该类别的x00代码来对待。
RTSP协议是应用层协议
应用层
RTSP RTP/RTCP
传输层
TCP
网络层
UDP
IP
RTSP协议的工作原理
RTSP中的所有的操作都是通过服务器和客户端的消息应答来完成 的,其消息包括请求(Request)和响应(Response)两种。 通过服务器和客户端的消息应答来完成媒体流的创建、初始化 (SETUP)、VCR控制(PLAY、PAUSE)以及拆线 (TEARDOWN)等操作的。
= |
请求首部(Require-Header)
请求首部(Require-Header)允许向服务器传送请 求行之外的以及客户端自身的一些信息,类似于程 序中方法所使用的传送参数。
request-header = Accept | Accept-Encoding | Accept-Language | Authorization | Proxy-Require | User-Agent | Range | Scale | Session | Speed | Transport 。。。
流媒体协议标准RTSP
DESCRIBE CC->S ANNOUNCE CC->S, S->C SGET_PARAMETER C->S, S->C CSOPTIONS CC->S, S->C SPAUSE PLAY RECORD REDIRECT SETUP SET_PARAMETER TEARDOWN CC->S CC->S CC->S SS->C CC->S CC->S, S->C SCC->S
2:消息头部结构 语法RFC889规定,类似HTTP/SIP等协议 语法RFC889规定,类似HTTห้องสมุดไป่ตู้/SIP等协议 messagemessage-header = field-name ":" [ field-value ] fieldfield其语义有协议自身规定,一次请求或者响应可以有多个头结构.
RTSP方法——rtsp交互指令 RTSP方法——rtsp交互指令 A: option 方法,这是一个双向的方法,两端请求对方的能力集.
OPTIONS * RTSP/1.0 SEQ :1 SESSION:12345678
B: DESC方法,用在客户端,向媒体源请求媒体发布信息. DESC方法,用在客户端,向媒体源请求媒体发布信息.
2:快进,快退,后退方法实现 Scale header 这个RTSP头,指定了相对于正常播放速率的比率.该头部参数,可以由Record 这个RTSP头,指定了相对于正常播放速率的比率.该头部参数,可以由Record Play方法携带; Play方法携带; PAUSE这个会话.然后使用定义的Sacle值来设定Play. PAUSE这个会话.然后使用定义的Sacle值来设定Play. PLAY rtsp:///audio RTSP/1.0 CSeq: 836 Session: 12345678 Scale:2 //两倍速率快进 //两倍速率快进 Scale:0.5 Scale:Scale:-1 Scale:Scale:-2 Scale:Scale:-0.5 //1/2倍速率慢进 //1/2倍速率慢进 //后退 //后退 //两倍速度快退 //两倍速度快退 //半倍速度快退 //半倍速度快退
《RTSP协议介绍》课件
要点二
DASH(Dynamic Adaptive Strea…
DASH是一种基于HTTP的流媒体传输协议,用于在网络中 传输实时音视频流。与HLS类似,DASH也通过将音视频 流分割成多个小的HTTP流,实现了对音视频流的动态调整 和流媒体的分发。DASH和HLS都是为了解决音视频流的 动态调整和分发问题而提出的解决方案,而RTSP则更侧重 于对音视频流的远程控制和管理。
Part
06
RTSP协议安全性
RTSP协议的安全性挑战
未加密的通信
RTSP协议默认使用明文传输,容易受到中间人 攻击和窃听。
身份验证和授权不足
RTSP协议缺乏强有力的身份验证和授权机制, 容易遭受非法访问和恶意攻击。
缺乏数据完整性和加密
RTSP协议缺乏数据完整性和加密机制,无法保证数据传输的安全性。
RTSP响应
状态码
RTSP协议使用状态码来标识请求的处理 结果,例如200表示成功,404表示未找 到媒体资源等。
VS
描述信息
服务器在响应中返回相关的描述信息,例 如SDP描述、会话标识等。
SDP协议
• SDP协议:会话描述协议(SDP)用于描述多媒体会话的邀请信息和属性,如媒体类型、编解码器、传输协议等。 RTSP协议通过SDP协议来描述和协商媒体会话的参数。
会话控制
RTSP协议支持会话控制,客户端和服务器之间通过交换会话元数据来建立和管理会话。会话元数据包括 会话标识符、参与者和媒体属性等。
播放媒体流
01
02
03
播放
记录
选择
客户端在获取媒体流描述信息后,可 以通过RTSP协议的播放命令开始播放 媒体流。客户端可以控制播放过程, 如暂停、快进、快退等。
RTSP协议概述
RTSP协议概述RTSP(Real Time Streaming Protocol)是一种网络传输协议,用于控制多媒体服务器和客户端之间的实时数据传输。
它是多媒体流媒体传输的重要协议之一,常被用于实时音视频的传输。
1.端到端控制:RTSP协议允许客户端对服务器上的流媒体进行控制,包括播放、暂停、停止、快进、快退等操作。
客户端可以发送指令请求控制服务器的媒体流。
2.请求响应模式:RTSP协议采用请求-响应模式进行通信。
客户端向服务器发送RTSP请求,服务器根据请求返回响应。
客户端通过解析响应来实现控制和传输。
3.会话管理:RTSP协议支持会话管理,可以在一次连接中多次请求媒体流。
客户端可以在一个会话中控制多个媒体流的播放,而无需多次连接服务器。
4.支持单播和组播:RTSP协议可以支持单播和组播两种传输模式。
单播模式将媒体数据定向传输给单个客户端,而组播模式可以将媒体数据同时发送给多个客户端。
5. 描述和控制媒体流:RTSP协议可以通过SDP(SessionDescription Protocol)描述和控制媒体流。
SDP定义了媒体流的属性和参数,包括媒体类型、编码格式、传输协议等。
RTSP协议可以通过发送SDP描述符来告知客户端媒体流的相关信息。
RTSP协议的应用范围广泛,常用于视频会议、流媒体服务器和客户端之间的通信等场景。
通过RTSP协议,用户可以实现对多媒体流的控制和传输,提供更灵活和实时的体验。
同时,由于RTSP协议的开放性和可扩展性,它也被广泛应用于视频监控、在线教育、视频直播等领域。
总之,RTSP协议是一种用于控制多媒体流媒体传输的协议,通过请求-响应模式实现客户端和服务器之间的交互。
它的优势在于实现了对媒体流的实时控制和传输,以及支持单播和组播等传输模式,为多媒体应用提供了更强大的功能和性能。
rtsp协议详解
rtsp协议详解RTSP(Real Time Streaming Protocol)是一种用于控制多媒体数据流传输的网络协议。
它是一种应用层协议,通常用于流媒体服务器和客户端之间的通信,以便实现实时音频和视频的传输。
RTSP协议是由IETF(Internet Engineering Task Force)制定的,它的设计目的是为了支持实时多媒体会话,如实时音频和视频的传输。
RTSP协议的工作原理是通过建立和维护一个会话来控制多媒体数据流的传输。
它使用客户端-服务器模型,客户端和服务器之间通过RTSP协议进行通信。
在建立会话时,客户端向服务器发送RTSP请求,服务器响应这些请求,并建立一个会话来传输多媒体数据。
在会话期间,客户端可以向服务器发送控制命令,如播放、暂停、停止等,以控制多媒体数据流的传输。
RTSP协议使用的是TCP或UDP协议进行数据传输。
在建立会话时,客户端和服务器之间会协商使用的传输协议和端口号。
一般情况下,实时多媒体数据的传输会使用UDP协议,而控制命令的传输会使用TCP协议。
这样可以保证实时多媒体数据的传输稳定性和实时性。
RTSP协议的消息格式包括请求消息和响应消息。
请求消息由客户端发送给服务器,用于请求建立会话或发送控制命令;响应消息由服务器发送给客户端,用于响应客户端的请求。
请求消息和响应消息都包括起始行、消息头和消息体。
起始行包括请求行或状态行,消息头包括一些控制信息,消息体包括一些实体数据。
RTSP协议支持多种控制命令,如PLAY、PAUSE、TEARDOWN等。
这些控制命令可以用于控制多媒体数据流的传输,如开始播放、暂停播放、停止播放等。
这样可以让客户端和服务器之间实现灵活的控制和交互。
总的来说,RTSP协议是一种用于控制实时多媒体数据流传输的网络协议。
它通过建立和维护会话来实现多媒体数据的传输和控制,支持多种控制命令,可以实现客户端和服务器之间的灵活交互。
在实际应用中,RTSP协议被广泛应用于流媒体服务器和客户端之间的通信,为实时音频和视频的传输提供了有效的支持。
RTSP协议概述
RTSP中的相关术语
连续媒体(Continuous Media):在发送端和接受端有时间关联的数据 流信息。也就是,在数据流的接受端必须要重新生成在源端存在的这种 时间上的关联。连续媒体最好的例子是视频流和音频流。连续媒体可以 是“实时”的,这种时间的先后联系非常紧密,也可以存储的媒体播放, 这种时间的先后联系显得相对宽松一些。 实体(Entity):在请求或者响应中作为在传输中有效载荷(Payload) 的信息。实体由作为实体的元信息描述的实体头(Entity Header)和包 含实体实际内容的实体体(Entity Body)组成。 媒体初始化(Media Initialization):媒体的类型/编码解码等信息。具体 还包含采样时钟频率、颜色表,等等。所有的和媒体播放相关的、与传 输独立的信息,都包含在媒体的初始化信息之中。
RTSP协议的属性
性能协商:如果Server的一些基本的功能缺少或无法实现, 必须存在一种明确的机制供客户来决定要具体实现哪些 RTSP的方法,同时也要提供友好的用户界面。例如,如果 Seeking在Server端不允许,那么在客户端必须禁止使用播 放器的滑竿条来实现拖动的定位功能。 代理服务器和防火墙友好:RTSP协议信息可以很容易地被 应用层和传输层(SOCKS)的防火墙处理。一个防火墙需 要理解RTSP协议的SETUP方法来为UDP媒体流在防火墙上 打开一个“洞”使其通过。 HTTP友好:RTSP中重用了HTTP中的许多概念,包括消息 的格式、消息头的格式等。
RTSP与HTTP比较
RTSP可以通过RTP协议(Real Time Protocol)来传输媒体 流,但其并不依赖于某种特定的传输层协议,是独立于传输 层协议的。 在语法和语意方面,RTSP协议与另一应用层协议HTTP1.1 有很大程度上的相似之处,之所以如此有意的设计,是为了 使得对HTTP协议的扩展在一定程度上也可以应用于RTSP协 议。 RTSP与HTTP毕竟是两种不同的协议,本身也存在着较大的 差别。
RTSP
操作模式
支持持久连接或无连接的客户端可能给其请求排队。服务器必须以收到请求的同样顺序发出响应。如果请求 不是发送给多播组,接收者就确认请求,如没有确认信息,发送者可在超过一个来回时间(RTT)后重发同一信 息。
在TCP中RTT估计的初始值为500ms。应用缓存最后所测量的RTT,作为将来连接的初始值。如使用一个可靠传 输协议传输RTSP,请求不允许重发,RTSP应用反过来依赖低层传输提供可靠性。如两个低层可靠传输(如TCP和 RTSP)应用重发请求,有可能每个包损失导致两次重传。由于传输栈在第一次尝试到达接收者前不会发送应用层 重传,接收者也不能充分利用应用层重传。如包损失由阻塞引起,不同层的重发将使阻塞进一步恶化。时标头用 来避免重发模糊性问题,避免对圆锥算法的依赖。每个请求在CSeq头中携带一个系列号,每发送一个不同请求, 它就加一。如由于没有确认而重发请求,请求必须携带初始系列号。
“rksp"和“rtspu"方案用于指RTSP协议使用的络资源,为RTSP URL定义方案特定的语法和语义。
会议标识对RTSP来说是模糊的,采用标准URI编码方法编码,可包含任何八位组数值。会议标识必须全局惟 一。
连接标识是长度不确定的字符串,必须随机选择,至少要8个八位组长,使其很难被猜出。
连接
RTSP请求可以几种不同方式传送: · 持久传输连接,用于多个请求/响应传输; · 每个请求/响应传输一个连接; · 无连接模式。 传输连接类型由RTSP URL来定义。对“rtsp'’方案,需要持续连接;而"rtspu"方案,调用RTSP请求发送, 而不用建立连接。 不像HTTP,RTSP允许媒体服务器给媒体用户发送请求。然而,这仅在持久连接时才支持,否则媒体服务器没 有可靠途径到达用户,这也是请求通过防火墙从媒体服务器传到用户的惟一途径。
RTSP协议
RTSP协议协议协议是应用级协议,控制实时数据的发送提供了一个可扩展框架,使实时数据,如音频与视频的受控、点播成为可能数据源包括现插数据与存储在剪辑中的数据该协议目的在于控制多个数据发送连接,为选择发送通道如、多播与等提供途径,并为选择基于上发送机制提供方法一.简介1.目的实时流协议建立并控制一个或几个时间同步的连续流媒体尽管连续媒体流与控制流交叉是可能的,通常它本身并不发送连续流换言之,充当多媒体服务器的网络远程控制连接没有绑定到传输层连接,如在连接期间,用户可打开或关闭多个对服务器的可靠传输连接以发出请求此外,可使用无连接传输协议,如流控制的流可能用到,但操作并不依赖用于携带连续媒体的传输机制实时流协议在语法和操作上与类似,因此的扩展机制大都可加入协议支持的操作如下: (1)从媒体服务器上检索媒体用户可通过或其他方法提交一个演示描述如演示是多播,演示时就包含用于连续媒体的多播地址和端口如演示仅通过单播发送给用户,用户为了安全应提供目的地址 (2)媒体服务器邀请进入会议媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分或全部这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮 (3)将媒体加到现成讲座中例如,服务器告诉用户可获得附加媒体内容这对现场讲座显得尤其有用如中类似,请求可由代理、通道与缓存处理 2.协议特点有如下特性(1) 可扩展性:新方法和参数很容易加入(2) 易解析:可由标准或解析器解析 (3) 安全:使用网页安全机制(4) 独立于传输:可使用不可靠数据报协议()、可靠数据报协议();如要实现应用级可靠,可使用可靠流协议(5) 多服务器支持:每个流可放在不同服务器上,用户端自动与不同服务器建立几个并发控制连接,媒体同步在传输层执行(6) 记录设备控制:协议可控制记录和回放设备 (7) 流控与会议开始分离:仅要求会议初始化协议提供,或可用来创建惟一会议标识号特殊情况下,可用或来邀请服务器入会(8) 适合专业应用:通过时标,支持帧级精度,允许远程数字编辑(9) 演示描述中立:协议没强加特殊演示或元文件,可传送所用格式类型;然而,演示描述至少必须包括一个(10) 代理与防火墙友好:协议可由应用和传输层防火墙处理防火墙需要理解方法,为媒体流打开一个&#;缺口&#;(11) 友好:此处,明智地采用观念,使现在结构都可重用结构包括内容选择平台()由于在大多数情况下控制连续媒体需要服务器状态,不仅仅向添加方法(12) 适当的服务器控制:如用户启动一个流,必须也可以停止一个流(13) 传输协调:实际处理连续媒体流前,用户可协调传输方法(14) 性能协调:如基本特征无效,必须有一些清理机制让用户决定哪种方法没生效这允许用户提出适合的用户界面 3.扩展由于不是所有媒体服务器有着相同的功能,媒体服务器有必要支持不同请求集可以如下三种方式扩展: (1) 以新参数扩展如用户需要拒绝通知,而方法扩展不支持,相应标记就加人要求的段中(2) 加入新方法如信息接收者不理解请求,返回错误代码,发送者不应再次尝试这种方法用户可使用方法查询服务器支持的方法服务器使用公共响应头列出支持的方法(3) 定义新版本协议,允许改变所有部分(协议版本号位置除外) 4.操作模式每个演示和媒体流可用识别演示组成的整个演示与媒体属性由演示描述文件定义使用或其他途径用户可获得这个文件,它没有必要保存在媒体服务器上为了说明这个问题,假设演示描述了多个演示,其中每个演示维持了一个公共时间轴为简化说明,且不失一般性,假定演示描述的确包含这样一个演示演示可包含多个媒体流除媒体参数外,网络目标地址和端口也需要决定下面区分几种操作模式(1)单播:用户选择的端口号将媒体发送到请求源 (2)服务器选择地址多播:媒体服务器选择多播地址和端口,这是现场直播或准点播常用的方式(3)用户选择地址多播:如服务器加入正在进行的多播会议,多播地址、端口和密钥由会议描述给出 5.状态控制通过单独协议发送的流,与控制通道无关例如,控制可通过连接,而数据流通过因此,即使媒体服务器没有收到请求,数据也会继续发送在连接生命期,单个媒体流可通过不同连接顺序发出请求来控制所以,服务器需要维持能联系流与请求的连接状态中很多方法与状态无关,但下列方法在定义服务器流资源的分配与应用上起着重要的作用:(1) :让服务器给流分配资源,启动连接 (2) 与:启动分配流的数据传输 (3) :临时停止流,而不释放服务器资源 (4) :释放流的资源,连接停止标识状态的方法使用连接头段识别连接,为响应请求,服务器连接产生连接标识6.与其他协议的关系在功能上与有重叠,与相互作用体现在与流内容的初始接触是通过网页的目前的协议规范目的在于允许在网页服务器与实现媒体服务器之间存在不同传递点例如,演示描述可通过和检索,这降低了浏览器的往返传递,也允许独立服务器与用户不全依靠但是,与的本质差别在于数据发送以不同协议进行是不对称协议,用户发出请求,服务器作出响应中,媒体用户和服务器都可发出请求,且其请求都是无状态的;在请求确认后很长时间内,仍可设置参数,控制媒体流重用功能至少在两个方面有好处,即安全和代理要求非常接近时,在缓存、代理和授权上采用功能是有价值的当大多数实时媒体使用作为传输协议时,没有绑定到假设存在演示描述格式可表示包含几个媒体流的演示的静态与临时属性二协议参数 1.版本采用,用代替2.&#;"和&#;"方案用于指协议使用的网络资源,为定义方案特定的语法和语义 3.会议标识会议标识对来说是模糊的,采用标准编码方法编码,可包含任何八位组数值会议标识必须全局惟一 4.连接标识连接标识是长度不确定的字符串,必须随机选择,至少要8个八位组长,使其很难被猜出 5.相关时标相关时标表示相对剪辑开始的时间,相关时标表示成时间代码,精确到帧级时间代码格式为小时:分钟:秒:帧缺省格式是" 30",帧速率为每秒帧其他代码可选择使用时间获得支持(如"25")时间数值中帧段值可从0到29每秒30与帧的差别可将每分钟的头两帧丢掉来实现如帧值为零,就可删除6.正常播放时间正常播放时间()表示相对演示开始的流绝对位置时标由十进制分数组成左边部分用秒或小时、分钟、秒表示;小数点右边部分表示秒的部分演示的开始对应秒,负数没有定义特殊常数定义成现场事件的当前时刻,这也许只用于现场事件直观上,是联系观看者与程序的时钟,通常以数字式显示在上 7.绝对时间绝对时间表示成时标,采用() 8.可选标签可选标签是用于指定新可选项的惟一标记这些标记用在请求和代理-请求头段当登记新选项时,需提供下列信息:名称和描述选项名称长度不限,但不应该多于20个字符名称不能包括空格、控制字符表明谁改变选项的控制如,,-T,或其他国际标准团体、联盟或公司深入描述的参考,如、论文、专利、技术报告、文档源码和计算机手册对专用选项,附上联系方式三信息是基于文本的协议,采用字符集,使用-8编码方案行以中断,但接收者本身可将CR和LF解释成行终止符基于文本的协议使以自描述方式增加可选参数更容易由于参数的数量和命令的频率出现较低,处理效率没引起注意文本协议很容易以脚本语言(如:,与)实现研究原型字符集避免敏感字符集切换,但对应用来说不可见也采用这种编码方案带有重要意义位的 -1字符表示如x 10x x x x x x信息可通过任何低层传输协议携带请求包括方法、方法作用于其上的对象以及进一步描述方法的参数方法也可设计为在服务器端只需要少量或不需要状态维护当信息体包含在信息中,信息体长度由如下因素决定:(1)不管实体头段是否出现在信息中,不包括信息体的响应,信息总以头段后第一个空行结束(2)如出现内容长度头段,其值以字节计,表示信息体长度如未出现头段,其值为零(3)服务器关闭连接注意,目前并不支持 &#;块&#;传输编码,需要有内容长度头假如返回适度演示描述长度,即使动态产生,使块传输编码没有必要,服务器也应该能决定其长度如有实体,即使必须有内容长度,且长度没显式给出,规则可确保行为合理从用户到服务器端的请求信息在第一行内包括源采用的方法、源标识和所用协议版本定义了附加状态代码,但没有定义任何代码四实体如不受请求方法或响应状态编码限制,请求和响应信息可传输实体,实体则由实体头文件和实体体组成,有些响应仅包括实体头在此,根据谁发送实体、谁接收实体,发送者和接收者可分别指用户和服务器实体头定义实体体可选元信息,如没有实体体,指请求标识的资源扩展头机制允许定义附加实体头段,而不用改变协议,但这些段不能假定接收者能识别不可识别头段应被接收者忽略,而让代理转发五连接请求可以几种不同方式传送:&#; 持久传输连接,用于多个请求/响应传输&#; 每个请求/响应传输一个连接 &#; 无连接模式传输连接类型由来定义对&#;'&#;方案,需要持续连接;而""方案,调用请求发送,而不用建立连接不像,允许媒体服务器给媒体用户发送请求然而,这仅在持久连接时才支持,否则媒体服务器没有可靠途径到达用户,这也是请求通过防火墙从媒体服务器传到用户的惟一途径六方法定义方法记号表示资源上执行的方法,它区分大小写新方法可在将来定义,但不能以$开头已定义方法如表14-03-1所示表14-03-1 方法方法方向对象要求含义 C-SP S 推荐检查演示或媒体对象的描述,也允许使用接收头指定用户理解的描述格式的答复-响应组成媒体初始阶段 C-S S-C P S 可选当从用户发往服务器时,将请求识别的演示或媒体对象描述发送给服务器;反之,实时更新连接描述如新媒体流加入演示,整个演示描述再次发送,而不仅仅是附加组件,使组件能被删除_ C-S S-C P S 可选。
RTSP协议讲解
RTSP协议在网络中所处的位置
பைடு நூலகம்
RTSP介绍
实时流协议(RTSP)建立并控制一个或几个时间同步的连 续流媒体,如音频和视频。尽管连续媒体流与控制流交叉是可能 的,RTSP 本身并不发送连续媒体流。换言之,RTSP 充当多媒 体服务器的网络远程控制。RTSP 提供了一个可扩展框架,实现 实时数据(如音频与视频)的受控、按需传送。数据源包括实况 数据与存储的剪辑。RTSP 用于控制多个数据发送会话,提供了 选择发送通道(如 UDP、组播 UDP 与 TCP 等)的方式,并提 供了选择基于 RTP 的发送机制的方法。
RTSP协议概念
RTSP(Real Time Streaming Protocol),实时流传输协议, 是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景 和RealNetworks公司提交的IETF RFC标准。
RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或 RTP完成数据传输。它的语法和运作跟HTTP 1.1类似,HTTP与 RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。 HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户 机和服务器都可以发出请求,即RTSP可以是双向的。
DESCRIBE
SETUP
客户端发送请求: SETUP rtsp://192.168.0.235/21.aac/track1 RTSP/1.0 CSeq: 3 User-Agent: MPlayer (LIVE555 Streaming Media v2011.03.14) //客户端详细 信息 Transport: RTP/AVP;unicast;client_port=59558-59559 //传输协议+传播方式 (单播或多播)+接收数据的端口号。 解析:客户端向服务端发送SETUP请求,要求服务端设置会话属性和流媒体 传输方式以建立会话。包内容包含客户端软件详细信息,以及所需要的传输协 议(RTP),传播方式和客户端用来接收数据的端口号。
RTSP流媒体协议
烽火通信科技股份有限公司
目录
RTSP协议概述
RTSP连接过程
RTSP报文详解
OPTION DESCRIBE SETUP PLAY
TEARDOWN
PAUSE GET_PARAMETER
烽火通信科技股份有限公司
RTSP报文范例
IP地址
端口号
文件路径
DESCRIBE rtsp://121.60.251.97:554/vcdn001/multicast/devi ce121060251081/ch0705102101074083292.sdp RTSP/1.0 RTSP版本 Accept: application/sdp CSeq: 1 User-Agent:ZTE Ltd.co RTSP protocal verion 1.0
TEARDOWN
PAUSE GET_PARAMETER
烽火通信科技股份有限公司
RTSP协议报文详解-DESCRIBE
主要功能:
从服务器获取流媒体文件格式信息 从服务器获取流媒体文件传输信息
关键字段:
Content-Type:一般是SDP
Content-length:一般是SDP的长度
required
流媒体各协议与TCP/IP协议栈的关系
SDP
MPEG H264
H.323
SIP
RTSP
RTCP
RTP
TCP
UDP
IPv4/IPv6
AAL3/4
AAL5
PPP
ATM
烽火通信科技股份有限公司
Ethernet
目录
RTSP协议概述
RTSP连接过程
RTSP报文详解
RTSP协议详解
RTSP协议详解RTSP(Real-Time Streaming Protocol)是一种用于控制流媒体服务器和客户端之间数据传输的协议。
它允许用户在收到流媒体数据之前与服务器进行交互,选择想要接收的媒体流,控制播放速度和播放模式等。
RTSP协议使用客户端/服务器模型,其中客户端发送请求到服务器,服务器则响应这些请求并传输媒体数据。
RTSP协议仅用于控制,而不负责传输媒体数据本身,这一任务通常由RTP(Real-Time Transport Protocol)来完成。
1.建立连接:客户端与服务器建立TCP连接,并使用RTSP协议进行通信。
2.描述会话:客户端发送一个通信请求,请求服务器提供会话的相关信息,比如媒体描述、媒体流地址等。
3.选择媒体流:客户端从服务器提供的媒体描述中选择一个或多个希望接收的媒体流。
4.控制媒体会话:客户端使用RTSP协议发送控制命令给服务器,比如播放、暂停、停止、快进和回放等。
5.播放媒体:服务器向客户端传输所选的媒体流。
6.关闭连接:客户端发送关闭请求给服务器,结束RTSP会话。
1.节约带宽:RTSP协议允许客户端仅接收媒体流中的特定部分,从而节约带宽和提高传输效率。
2.实时传输:RTSP协议支持实时传输媒体流,适用于需要实时展示的场景,比如直播和视频会议等。
3.支持多媒体:RTSP协议可以同时传输音频、视频和其他媒体类型,使得用户可以选择自己感兴趣的内容。
4.内容交互:RTSP协议支持客户端和服务器之间的交互,如选择不同的流、调整播放速度和播放模式等。
总结来说,RTSP协议提供了一种灵活的方式来控制流媒体服务器和客户端之间的数据传输。
它可以在不同平台和设备之间实现兼容性,并支持对媒体流进行精细控制和交互。
这使得RTSP成为流媒体传输的重要协议之一,广泛应用于视频直播、会议系统和视频监控等领域。
RTSP协议简介
提供了基于网页的发布链接。URL举例: rtsp_URL = ( “rtsp:” | “rtspu:” ) “//” host [ “:” port ] [ abs_path ] 其中rtsp发布表示承载在tcp上,rtspu表示承载在udp上。 发布方式: 1:直接承载在网页上 <A HREF=“rtsp://192.168.0.124:554/video/risk.mp4"> 冒险岛</A> 请求方式:先需要做媒体描述请求 DESCRIBE rtsp://192.168.0.124:554/video/risk.mp4 CSeq: 1 2:以sdp方式承载在网页上 <A HREF=“/video/risk.sdp"> 请求方式:直接通过http协议请求SDP类型信息 GET /video/risk.sdp HTTP/1.1 Host: Accept: application/sdp 权威的URL语法及语义信息参见RFC1738[4]和RFC1808[9]
客户机
服务器
GET: 元文件
浏览器
RESPONSE
万维网 服务器
元文件 SETUP
RESPONSE
媒体 服务器SE 音频/视频流
TEARDOWN
RESPONSE
使用 RTSP 的媒体服务器的工作过程 浏览器向万维网服务器请求音频/视频文件。 万维网服务器从浏览器发送携带有元文件的响应。 浏览器把收到的元文件传送给媒体播放器。 RTSP 客户与媒体服务器的 RTSP 服务器建立连接。 RTSP 服务器发送响应 RESPONSE 报文。 RTSP 客户发送 PLAY 报文,开始下载音频/视频文 件。 RTSP 服务器发送响应 RESPONSE 报文。 RTSP 客户发送 TEARDOWN 报文断开连接。 RTSP 服务器发送响应 RESPONSE 报文。
RTSP协议浅析.ppt
有关RTCP协议的一些功能就迁移到RTSP协议了; • 关于文件播放完成,普通标准,server这时发送RTCP的goodbye消息,然后client发送
TEARDOWN,server响应;而联通标准是server发送ANNOUNCE,然后client发送 TEARDOWN,server响应; • 关于文件定位,普通标准,client发送PAUSE,然后发送PLAY携带新的RANGE来实现; 而联通标准是client端直接发送携带新RANGE的PLAY命令; • 关于快进和快退,联通标准是直接发送一个携带新SCALE的PLAY命令;普通标准,暂 不清楚; • 在数据传输协议上,普通标准只有两种RTP/AVP/UDP和RTP/AVP/TCP;而联通标准 有四种MP2T/RTP/UDP和MP2T/RTP/TCP和MP2T/UDP和MP2T/TCP; • 在数据传输协议的选择上,普通标准是首先尝试RTP/AVP/UDP,如果没有收到数据包, 超时,TEARDOWN,然后会选择使用RTP/AVP/TCP;而联通标准是client端告诉服务 端四种传输方式,然后服务端来选择传输方式; • 普通标准使用的是普通RTP协议,联通标准使用了扩展RTP协议; • 普通标准使用RTCP做心跳,联通标准使用了get_parameters作为心跳;
• TS标准,优点是易于传输,主要是考虑调制解 调无线电波信号更方便,缺点是不方便扩展。
联通协议
RTSP TCP
信令
TS RTP UDP
数据
MP2T/RTP/UDP
TS RTP RTSP RTSP TCP 信令/数据
MP2T/RTP/TCP
网络流媒体协议之——RTSP协议
⽹络流媒体协议之——RTSP协议RTSP(Real-Time Stream Protocol)协议是⼀个基于⽂本的多媒体播放控制协议,属于应⽤层。
RTSP以客户端⽅式⼯作,对流媒体提供播放、暂停、后退、前进等操作。
该标准由IETF指定,对应的协议是RFC2326。
RTSP作为⼀个应⽤层协议,提供了⼀个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要⽤来控制具有实时特性的数据的发送,但其本⾝并不⽤于传送流媒体数据,⽽必须依赖下层传输协议(如RTP/RTCP)所提供的服务来完成流媒体数据的传送。
RTSP负责定义具体的控制信息、操作⽅法、状态码,以及描述与RTP之间的交互操作。
RTSP媒体服务协议框架如下:客户端要播放RTSP媒体流,就需要知道媒体源的URL,RTSP的URL格式⼀般如下:rtsp://host[:port]/[abs_path]/content_namehost: 有效的域名或IP地址;port: 端⼝号,缺省为554,若为缺省可不填写,否则必须写明。
例如,⼀个完整的RTSP URL可写为:rtsp://192.168.1.67:554/test⼜如⽬前市⾯上常⽤的海康⽹络摄像头的RTSP地址格式为:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream⽰例:rtsp://admin:12345@192.168.1.67:554/h264/ch1/main/av_streamrtsp://admin:12345@192.168.1.67/mpeg4/ch1/sub/av_streamRTSP报⽂对RTSP协议的使⽤有了⼀个⼤概的了解之后,我们来看⼀下RTSP报⽂结构。
RTSP是⼀种基于⽂本的协议,⽤CRLF(回车换⾏)作为每⼀⾏的结束符,其好处是,在使⽤过程中可以⽅便地增加⾃定义参数,也⽅便抓包分析。
RTSP基础知识及测试方法课件
RTP数据封装
TCP/IP模型
应用层
应用程序
RTP 套接口
传输层
UDP
网络层
IP
链路层
物理层
(a) RTP在协议套中的位置
视听数据
RTP包头 RTP有效载荷(视听数据)
UDP包头 RTP包头
RTP有效载荷(视听数据) UDP有效载荷
IP包头 UDP包头 RTP包头 RTP有效载荷(视听数据) IP有效载荷
直播与点播的区别?
表面上看, 1、直播: 就是它放什么你看什么.比如它现在放一个电影..放到哪你就得从哪看..就 像电视一样; 2、点播: 就是你选什么然后从头开始放..这样对看电影的人来说无疑是方便了不少 ....好像你买盘看VCD一样..
实际上, 直播一般是采用IGMP协议,传输的是组播流(目的地址为组播地址); 点播一般采用RTSP协议,传输的是RTP流(点对点的UDP数据流)。
以太网包头 IP包头 UDP包头 RTP包头 RTP有效载荷(视听数据) 以太网有效载荷
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建立会话,返回会话标识符及会话相关信息
RTSP协议ppt解析
User-Agent: RealMedia player(HelixDNAClient)/10.0.0.0(win32) 这条表示了客户端使用的是什么播放器,以及播放器的版本。
响应报文
状态行(Status-Line)
每一个请求发出后,都能收到一个响应。响应的第一个字 段就是状态行。其格式如下: Status-Line = RTSP-Version SP Status-Code SP Reason-Phrase CRLF • RTSP-Version是协议的版本号(RTSP/1.0) • Status-Code是状态码(200) • Reason-Phrase是解释状态的简单短语(OK)。
常用状态码
Code • 200 • 301 • 400 • 401 • 403 • 404 • 405 • 500 • 501 • 503 • 551 State Description OK好 Redirect重定向 Bad Request错误的请求 Unauthorized未授权 Forbidden 禁止 Not Found 未找到 Method Not Allowed不允许 Internal Server Error内部服务器错误 Not Implemented 未执行 Service Unavailable服务不可用 Option not support选项不支持
content-type
这个头域指定了消息实体的类型。 在我们的应用里,属性参数固定为 application/sdp,格式固定为: Content-Type: application/sdp\r\n
RTSP协议
• 主要使用两个协议来与客户端联系: 主要使用两个协议来与客户端联系:
– RTSP (Real Time Streaming Protocol) – PNA (Progressive Networks Audio)
9
RealPlayer的建立过程 的建立过程
当用户在浏览器上点击一个指向媒体文件的链接时, 当用户在浏览器上点击一个指向媒体文件的链接时,Realplayer打开 打开 一个与RealServer的双路连接,通过这个连接与 的双路连接, 一个与 的双路连接 通过这个连接与RealServer之间来回传 之间来回传 输信息: 输信息:
一旦RealServer接受了客户端的请求,它将通过UDP协议传输客户 接受了客户端的请求,它将通过 一旦 接受了客户端的请求 协议传输客户 请求的数据: 请求的数据:
10
RealPlayer的建立过程 的建立过程
指向被请求SMIL文件的URL引 发RAMGEN自动产生一个包含 SMIL文件位置的RAM文件, 这个RAM文件将被传送给浏览 器 浏览器通过 HTTP协议向 RealServer 服务器发出 请求
6
RTSP与HTTP 与
RTSP与HTTP的本质差别在于数 与 的本质差别在于数 据发送以不同协议进行。 据发送以不同协议进行。
发送请求
HTTP:
作出响应
RTSP:
发送请求/作出响应
7
RTSP协议 协议
• 概述 • RTSP与HTTP 与 • RealPlayer的建立过程 的建立过程 • RTSP状态机 状态机 • RTSP消息格式 消息格式 • RTSP通信流程 通信流程 • RTSP消息流程 消息流程 • 主要消息描述
RTSP协议 协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实体主体
rtsp消息的消息体被用来携带请求或响应的实 体信息。什么时候容许使用消息体对于请求和响 应是不同的,目前对我们实际应用仅在 DESCRIBE的响应中能带有消息体。 • 当请求带有Content-Length头域时,消息能带 有消息体,并且消息体只有在那些容许使用消息 体的方法中才能使用。 • 而响应中是否能包含一个消息体要依据请求的 方法及响应的状态码来定,所有的1xx,204,304响 应状态码都不能带有消息体。 •
SETUP
• SETUP方法让URI指定流媒体所使用的 传输机制。Transport头指定了客户端支持 的数据传输的传输参数,而SETUP的响应 包含服务器选择的传输参数。 • 服务器在对SETUP的响应里生成Sessi置URI指定流的参数值
PLAY方法告诉服务器开始按照SETUP指定的机制来传送数 据,客户端只有接收到SETUP的成功响应后才能执行PLAY 请求,PLAY请求按照range指定的开始和结束时间来定位 正常播放时间。
通用首部(General-Header)
CSeq 表示一个RTSP的请求/响应报文对的序列 号,出现在所有请求/响应报文中,一个请求报 文必须同它响应报文的CSeq一致,任何重传的 请求报文必须同原始报文的CSeq相同。命令的 序列号,逐 1 增加。
请求首部(Require-Header)
请求首部(Require-Header)允许向服务器传送请求行之外的以及客户 端自身的一些信息,类似于程序中方法所使用的传送参数。
三次握手
RTSP协议格式
• RTSP是一个基于文本的协议,它使用UTF-8编码(RFC2279)和 ISO10646字符序列,采用RFC882定义的通用格式,每个语句行由CRLF 结束。 • RTSP的消息包括请求和应答两类,格式如下: 请求报文 响应报文 Request-Line Status-Line *( general-header *( general-header | request-header | response-header | entity-header ) | entity-header ) CRLF CRLF [ entity-body ] [ entity-body ]
状态码
状态码是服务器试图理解和满足请求报文的结果代码,由三位数字组成, 其中第1位表示响应的分类,一共是5大类,剩余两位并未分类: • 1xx,Informational 接受请求,持续处理; • 2xx,Success 成功地接受理解行为; • 3xx,Redirection 为了完成请求采取进一步的措施; • 4xx,Client Error 请求存在语法错误,或不能被执行; • 5xx,Server Error 服务器不能执行正确的请求。 状态码是可扩展的,对RTSP应用软件来说没有必要理解全部注册状态 码的含义,但需要理解第1位表示的类别,这样就可以将一些不能够 识别的状态码等同于该类别的x00代码来对待。
RTP-Info 这个头被用来在PLAY响应里设置RTP特定参数。 url:指定RTP参数所对应的流的url(url格式与uri格式相同) seq:指定流的第一个包的序列号。 Rtptime:指出流的第一个包的时间戳值。 格式: RTP-Info = " RTP-Info: url=" +url参数+“;seq=”+seq参数+“;Rtptime=” +Rtptime参数+回车换行
Session
这个域用来表示一个会话的ID。是用作客户端和 服务器之间是否是正确的连接。 Session="Session":"session-id"session-id为 一个32位的正整数,在连接中每个session-id必 须保证唯一。
DESCRIBE方法
• 这是要连接的 url (服务器域名和流路径),后 面跟着 RTSP 的版本。 • 客户端通过向服务器发送请求URL,获取指定的演 示或媒体对象的描述信息 • 允许ACCEPT头指明客户端能理解的描述格式 • DESCRIBE回复-响应对构成了RTSP的媒体初始化 阶段。
TEARDOWN请求停止给定URI的流传输并释放相关资源
THE END THANK YOU!
RTSP协议
RTSP(Real Time Streaming Protocol)实时流协议
• RTSP协议是由RealNetwork和Netcape共同提出的。 • 协议定义了一对多应用程序如何有效地通过IP网 络传送多媒体数据 • RTSP协议用于控制具有实时特性的数据(例如多 媒体流)的传送。 • 为多媒体数据流提供远程控制功能,如播放、停 止、快进等。 • 一般与RTP/RTCP等底层协议一起协同工作 • 可以选择数据发送通道(如UDP、组播UDP和TCP) • RTSP在语法和操作上与http/1.1 类似 • RTSP连接没有绑定到传输层连接,如TCP
request-header = Accept | Accept-Encoding | Accept-Language | Authorization | Proxy-Require | User-Agent | Range | Scale | Session | Speed | Transport
通用首部
响应首部(Response-Header)
•
请求报文的接收者除在状态行外,在响应首部中给出了更多关于URI定位 的服务器和媒体资源进一步的信息。包括以下几个可选字段: response-header = Allow | Content-Type | Location | Public | Range | Retry-After | RTP-Info | Scale | Session | Server | Speed | Transport
UserUser-Agent: RealMedia player(HelixDNAClient)/10.0.0.0(win32) 这条表示了客户端使用的是什么播放器, 这条表示了客户端使用的是什么播放器,以及播放器的版本。
响应报文
状态行(Status-Line)
每一个请求发出后,都能收到一个响应。响应的第一个字 段就是状态行。其格式如下: Status-Line = RTSP-Version SP Status-Code SP Reason-Phrase CRLF • RTSP-Version是协议的版本号(RTSP/1.0) • Status-Code是状态码(200) • Reason-Phrase是解释状态的简单短语(OK)。
常用状态码
Code • 200 • 301 • 400 • 401 • 403 • 404 • 405 • 500 • 501 • 503 • 551 reason usage with RTSP methods OK all Redirect all Bad Request all Unauthorized all Forbidden all Not Found all Method Not Allowed all Internal Server Error all Not Implemented all Service Unavailable all Option not support all
请求报文
请求行(Request-Line)
格式
Request-Line = Method SP Request-URI SP RTSP-Version CRLF • Method是请求命令(OPTIONS方法用于得到服务器提供的可用方法, 服务器的回应信息会在Public 字段列出提供的方法) • Request-URI是媒体的表示地址(rtsp://202.118.65.133:554) • RTSP-Version是协议的版本号(RTSP/1.0)
content-type
这个头域指定了消息实体的类型。 在我们的应用里,属性参数固定为 application/sdp,格式固定为: Content-Type: application/sdp\r\n
content-length
• 这个头域包含消息体的长度。 • Content-Length = "Content-Length" ":"长 度值+回车换行,长度单位是byte。