RTSP协议详解中文版.docx
- 文档编号:5063473
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:83
- 大小:84.53KB
RTSP协议详解中文版.docx
《RTSP协议详解中文版.docx》由会员分享,可在线阅读,更多相关《RTSP协议详解中文版.docx(83页珍藏版)》请在冰豆网上搜索。
RTSP协议详解中文版
E-mail:
bryanj@
译者:
Bryan.Wong(王晶,宁夏固原)
译文版本:
alpha0.80
译文发布时间:
2007-7-25
版权:
本中文翻译文档之版权归王晶所有。
可于非商业用途前提下自由转载,但必须保留此翻译及版权信息。
网络工作组 H.Schulzrinne
请求注释:
2326 哥伦比亚大学.
类别:
标准跟踪 A.Rao
Netscape
R.Lanphier
RealNetworks
1998年4月
实时流协议(RTSP)
本备忘录状态
本文为Internet社区描述了一种Internet标准跟踪协议 ,还需要讨论和建议以便进行改善。
请查看最新版本的"Internet正式协议标准"(STD1)了解本协议的标准化进程和状态。
本备忘录的传播不受限制。
版权声明:
版权为TheInternetSociety所有。
所有权利保留。
摘要:
实时流协议(RTSP)是应用层协议,控制实时数据的传送 。
RTSP提供了一个可扩展框架,使受控、按需传输实时数据(如音频与视频)成为可能。
数据源包括现场数据与存储在剪辑中的数据。
本协议旨在于控制多个数据发送会话,提供了一种选择传送途径(如UDP、组播UDP与TCP)的方法,并提供了一种选择基于RTP(RFC1889)的传送机制的方法。
目录:
1介绍
1.1目的
1.2要求
1.3术语
1.4协议特性
1.5RTSP扩展
1.6整体运作
1.7RTSP状态
1.8与其他协议的关系
2符号协定
3协议参数
3.1RTSP版本
3.2RTSPURL
3.3会议标识
3.4会话标识
3.5SMPTE相对时间戳
3.6正常播放时间
3.7绝对时间
3.8选项标签
3.8.1用IANA注册新的选项标签
*4RTSP消息
4.1消息类型
4.2消息头
4.3消息主体
4.4消息长度
*5普通头部段
*6请求
6.1请求行
6.2请求消息头段
*7响应
7.1状态行
7.1.1状态码和原因短语
7.1.2响应头部段
*8实体
8.1实体头部域
8.2实体主体 24
*9连接
9.1流水线化 25
9.2可靠性及确认 25
*10方法定义 25
10.1可选项 26
10.2描述 26
10.3通知 26
10.4建立 26
10.5播放 27
10.6暂停 27
10.7断开 27
10.8获取参数 28
10.9设置参数 28
10.10重定向 28
10.11录制 29
10.12嵌入(交织)的二进制数据 29
*11状态码定义 29
11.1成功2xx 30
11.1.1存储空间低250 30
11.2重定向3xx 31
11.3客户端错误4xx 31
11.3.1方法不允许 32
11.3.2无法理解参数 32
11.3.3会议未找到 33
11.3.4带宽不足 33
11.3.5会话未找到 34
11.3.6本状态下该方法无效 34
11.3.7头部域与资源不匹配 34
11.3.8无效范围 35
11.3.9参数为只读 35
11.3.10不允许合操作 36
11.3.11只允许合操作 36
11.3.12不支持的传输 36
11.3.13目标不可达 37
11.3.14不支持的选项 37
12头部段定义(HeaderFieldDefinitions) 38
12.1接受 38
12.2接受-编码 38
12.3接受-语言 39
12.4允许(Allow) 39
12.5授权(Authorization) 40
12.6带宽 40
12.7块大小 40
12.8缓存控制 41
12.9会议 41
12.10连接 41
12.11内容-基础 42
12.12内容-编码(Content-Encoding) 42
12.13内容-语言 43
12.14内容-长度(Content-Length) 43
12.15内容-位置 43
12.16内容-类型(Content-Type) 44
12.17命令序列题头(CSeq) 44
12.18日期(Date) 44
12.19过期(Expires) 45
12.20来自(From) 45
12.21主机 45
12.22如果匹配 45
12.23如果-被修改-自从(If-Modified-Since) 46
12.24最后修改(Last-Modified) 46
12.25位置(Location) 46
12.26代理认证 47
12.27代理要求 47
12.28公布 47
12.29范围 49
12.30提交方(Referer) 49
12.31稍后重试 49
12.32要求 49
12.33RTP信息 49
12.34倍速(Scale)
12.35速度 49
12.36服务器(Server) 49
12.37会话 49
12.38时间戳 49
12.39传输 49
12.40不支持 49
12.41用户代理(User-Agent) 49
12.42变化 49
12.43通过 49
12.44WWW-认证(WWW-Authenticate) 50
*13缓存 50
*14例子 50
14.1按需点播(单播) 50
14.2容器文件的流化 51
14.3单个流容器文件 51
14.4实况媒体表示的组播 51
14.5在存在的会话中播放媒体 51
14.6录制 52
*15语法 52
15.1基本语法 52
16安全考虑(SecurityConsiderations) 52
*附录A RTSP协议状态机 53
*A.1客户端状态机 53
*A.2服务器端状态机 53
*附录B与RTP协议的交互 53
*附录C使用SDP进行RTSP会话描述 54
+C.1定义 54
oC.1.1控制URL 55
oC.1.2媒体流 55
oC.1.3有效载荷类型 55
oC.1.4详细格式参数 55
oC.1.5表示的范围 56
oC.1.6有效时间 56
oC.1.7连接信息 56
oC.1.8实体标签 57
+C.2合控制不可用 57
+C.3合控制可用 57
*附录D最小RTSP实现 58
+D.1客户端 58
D.1.1基本回放 58
D.1.2认证enabled 58
+D.2服务器 59
D.2.1基本回放 59
D.2.2认证enabled 59
*附录E作者地址 60
*附录F致谢 60
*参考书目 60
*版权申明 61
1介绍
1.1目的
实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,比如音频或视频。
尽管在连续媒体流中有可能插入控制流(见10.12节),但RTSP本身通常并不发送连续媒体流。
换言之,RTSP充当多媒体服务器的"网络遥控器"。
表示描述定义了流的控制操作的集合,但本文并没有规定表示描述的格式。
RTSP没有"连接"这个概念,而由RTSP会话(session)代替(服务器端保持一个由识别符标记的会话)。
RTSP会话没有绑定传输层连接(如TCP连接)。
在RTSP会话期间,RTSP客户端可以打开或关闭多个到服务器端的可靠传输连接以发出RTSP请求。
但也可以使用无连接传输协议,比如UDP,来发送RTSP请求。
RTSP所控制的流可能用到RTP,但RTSP的操作并不依赖用来传送连续媒体的传输机制。
实时流协议在语法和操作上有意地类似于HTTP/1.1,使得HTTP的扩展机制大都可加入RTSP。
尽管如此,RTSP在很多重要方面与HTTP有所不同:
*RTSP引入了很多新方法并且有不同的协议标识符。
*RTSP服务器在绝大多数默认情况下需要维持状态,而HTTP是无状态协议。
*RTSP客户机和服务器都可以发出请求。
*数据由信带外的另一个协议传送(但有一个特例)。
*RTSP使用ISO10646(UTF-8)而不是ISO8859-1,以配合当前HTML的国际化。
*RTSP的URI请求时总是包含绝对URI。
而由于历史原因造成的后向兼容性问题,HTTP/1.1只在请求中包含绝对路径,把主机名放入单独的头部域中。
当只有一个IP的主机要提供多个文档树时,可使"虚拟主机"的实现更简单。
协议支持以下操作:
从媒体服务器上获得媒体:
用户可通过HTTP或其它途径请求一个表示描述。
如果该表示是组播,表示描述就包含用于该连续媒体的的多播地址和端口。
如表示仅通过单播发送给用户,用户为了安全应起见要提供目的地址。
邀请媒体服务器进入会议:
媒体服务器可被"邀请"加入已存在的的会议,包括向该表示内回放媒体,或记录此表示中的一部分或全部媒体。
这种模式在分布式教学应用上很有用。
会议中的各方可轮流"按网络遥控器的按钮"。
将媒体加到已存在的表示中:
现场表示 的专用概念。
当服务器可以告诉客户端"可以附加媒体"时有用。
和HTTP/1.1类似,RTSP的请求可由代理、通道与缓存处理。
1.2要求
在本文档中的关键字"必须","必须不"、"需要"、"必须"、"必须不"、"应该"、"不应该"、"推荐"、"可能"、和"可选的",都和RFC2119[4]中的解释一致。
1.3术语
一些HTTP/1.1的术语被采用。
这里没有举出的术语,其定义与HTTP/1.1相同。
合控制:
服务器使用一条时间线对多个流进行控制。
对音频/视频的回放来讲,这意味着客户端仅需发送一条播放或者暂停消息就可同时控制音频和视频的回放。
会议:
多方参与的多媒体表示,这里的多方意味着大于或等于一方。
客户端:
指请求媒体服务器上连续流媒体数据的客户端。
连接:
以通讯为目的,在传输层建立的两个程序间的虚拟信道。
容器文件:
可以容纳多个媒体流的文件,而这些媒体流共同播放时通常还包含一个表示。
RTSP服务器可以为这些容器文件提供合控制,但容器文件的概念本身并不包含在本协议中。
连续媒体:
接受器和数据源之间存在时序关系的数据。
也就是说,接受器需要重放原来存在于源数据中的时序关系。
最普通的连续媒体的例子是音频和动画视频。
连续媒体可以是实时的(交互的),它们在源和接受器之间是一种紧密的时序关系;或者是流(回放)的形式,时序关系没那么严格。
实体:
请求或者响应的载荷部分中所传输的信息。
实体由信息元组成,而每个信息元由由实体头部域和实体主体组成。
实体头部域内是信息格式,实体主体内是信息内容,如第8章所述。
媒体初始化:
数据类型/编码的具体初始化。
这包括时钟频率,颜色空间等。
客户端请求一个媒体流回放时所需的任何独立于传输的信息,都是在流创建时媒体初始化阶段产生的。
媒体参数:
对于某种特定的媒体类型来说,回放前或者回放中有可能会发生改变的一些参数。
媒体服务器:
提供一个或多个媒体流之回放或录制服务的服务器。
同一个表示(presentation)中不同的媒体流可能来自于不同的媒体服务器。
媒体服务器可以建在激活该表示(presentation)的Web服务器上,也可以建立在不同的主机上。
媒体服务器重定向:
重新把媒体客户端定向到另外一个媒体服务器。
(媒体)流:
单个媒体实例,比如,一个音频流或者一个视频流,连同一个白板或者共享程序组。
当使用RTP时,流包括由RTP会话(session)中同一个源所创建的所有RTP和RTCP包。
这和DSM-CC流([5])的定义相同。
消息:
RTSP通讯的基本单元。
由15章语法定义的结构化八位位组序列组成,并通过有连接或者无连接协议传送。
参与者:
一个会议的成员。
参与者可以是机器,比如是媒体记录或回放服务器。
表示(presentation):
作为一个完整的媒体信息,回馈性地表述给客户端的一个或多个流的集合。
表示使用下面的表示描述进行表述。
大部分情况下,在RTSP中的文字部分中,这暗示集合中的流的合控制,但并非必须。
表示描述(presentationdescription):
表示描述包含在表示(presentation)中一个或者多个媒体流的信息。
比如,编码,网络地址和内容的信息,的集合。
另外,其他IETF协议,如SDP协议使用术语"会话(session)"代替"现场表示"。
表示描述可以采用包括会话描述(sessiondescription)SDP在内的多种格式。
响应:
RTSP响应。
如果能理解HTTP响应,就能清楚地理解RTSP响应。
请求:
RTSP请求。
如果能理解HTTP请求,就能清楚地理解RTSP请求。
RTSP会话(session):
包括一次RTSP"事务"(transaction)的全过程。
比如,一个电影的观看过程。
会话(session)一般包括由客户端为连续媒体建立传输机制(SETUP),使用播放(PLAY)或录制(RECORD)开始传送流,用停止(TEARDOWN)关闭流。
传输初始化:
客户端和服务器端之间关于传输所需的相关信息(端口号,传输协议等)的协商。
1.4协议特点
RTSP有以下特性:
易于扩展:
可以很容易地向RTSP加入新方法和参数。
易解析:
RTSP可由标准HTTP或MIME解析器解析。
安全:
RTSP重用 了网页安全机制。
所有HTTP授权机构如basic(RFC2068[2,Section11.1])和digest(RFC2069[8])授权都可直接使用。
也可以重用传输层或网络层安全机制。
独立于传输:
RTSP即可使用不可靠数据报协议(UDP)、可靠数据报协议(RDP),如要实现应用级可靠,也可使用可靠流协议如TCP。
多服务器支持:
表示(presentation)中的每个流可放在不同服务器上,客户端自动同不同服务器建立几个并发控制的会话,媒体同步在传输层执行。
录制设备控制:
协议可控制记录和回放设备,以及可在两种模式之间切换的设备(VCR)。
流控制与会议初始化分离:
流控制与邀请媒体服务器入会相分离;仅要求会议初始化协议可提供,或可用来创建具有唯一性的会议标识号。
具体地说,SIP或H.323可用来邀请服务器入会。
适合专业应用:
通过SMPTE时标,RTSP支持帧级别精度,以支持远程数字编辑。
适合专业应用:
RTSP依赖SMPTE时间戳支持帧级精度,使得可以进行远程数字编辑。
表示描述中立:
协议没强行指定特定的表示或元文件格式,可传达所用的格式类型;然而,表示描述必须至少包含一个RTSPURI。
代理与防火墙友好:
协议需由应用层协同传输层(SOCKS[14])防火墙友好地进行处理。
防火墙需要理解SETUP方法,以为UDP媒体流打开一个"洞口"。
HTTP友好:
此处,RTSP明智地重用了HTTP概念,使现有的基础结构可被重用。
这些基础结构包括Internet内容选择平台(PICS:
PlatformforInternetContentSelection[15,16]),以便通过相关标签访问内容。
但由于在大多数情况下,控制连续媒体需要服务器状态 ,RTSP不仅仅向HTTP添加方法。
合适的服务器控制:
若客户端能启动一个流,它必须也能停止一个流。
服务器不能启动一个用户不能停止的流。
传输协商:
实际处理连续媒体流前,客户端可协商传输方法。
性能协商:
若基础特性被禁用,必须有某种明确的机制让用户决定哪种方法将不不被实现。
这允许用户提出适合的用户界面。
例如,如果不允许寻找,用户界面必须能禁止位置条滑动。
早期曾要求RTSP支持多用户,但现在有了更好的方案,就是保证RTSP能很容易扩展成支持多用户即可。
因为流的标志可以被多个控制流使用,因此可以"轮换持有控制器"。
协议不涉及到多个客户端如何协调入口--这项任务被留给"社会协议"或其他层。
1.5扩展RTSP
由于不是所有媒体服务器有着相同的功能,媒体服务器有必要支持不同的请求集。
例如:
服务器可能只能回放,因此不必支持录制请求。
用于提供现场直播的服务器可能不支持寻找(绝对位置)功能。
一些服务器可能不支持设置流参数,因此不支持GET_PARAMETER和SET_PARAMETER请求。
但服务器应该实现所有12章中要求的标题域。
表示描述(presentationdescription)应当保证不提出服务器不支持的功能,这种情形和HTTP/1.1[2]中,[H19.6]所描述的方法不太可能被所有服务器都支持的情形一致。
RTSP可以如下三种方式扩展,按所支持的改变多少排序:
*已有的方法可以扩展加入新参数,只要这些参数可以被接收方安全地忽略。
(这和给一种HTMLtag增加新标签是一样的)如果客户端在请求失败时需要一个拒绝确认,需要在请求:
字段(见Section12.32)中加入一个对应于该扩展的标签。
*可以加入新方法。
如果接收方不理解请求,它就返回一个501错误码(意指未实现),发送方就不应再尝试这种方法。
客户端可以用OPTIONS方法去询问服务器支持的方法。
服务器应该在公共回应头里列出它所支持的所有方法。
*可以定义新版本的协议,以支持几乎所有方面的改变(除了版本协议号的位置)。
1.6整体运作
每个表示和媒体流可用RTSPURL识别。
表示组成的整个表示与媒体属性由表示描述(presentationdescription)文件定义,其格式不在本协议中定义。
客户端可以通过HTTP或其它途径(如email)获得此表示描述文件,它没有必要保存在媒体服务器上。
根据此规范的目标,我们假想一个表示描述(presentationdescription)描述了多个表示(presentation),每个表示(presentation)维持一个统一的时间轴。
为简明但不失一般性,假定表示描述(presentationdescription)正好包含一个这样的表示(presentation)。
表示(presentation)可包含多个媒体流。
表示描述(presentationdescription)包含组成表示的流的描述,包括它们的编码,语言和使用户可以选择最符合要求媒体的其他参数。
在表示描述中,各个由RTSP分别控制的媒体流各有一个RTSPURL。
RTSPURL指出了处理具体媒体流的服务器以及存在于该服务器上流的名字。
多个媒体流可以放到不同的服务器上,比如音频和视频流可以分别放到不同服务器而实现均分负载。
描述(description)还列出了服务器可使用的传输方法。
除媒体参数外,网络目标地址和端口也需要决定。
下面区分几种操作模式:
单播:
以用户选择的端口号将媒体发送到RTSP请求的来源处。
另一种选择是,用和RTSP相同的可靠流传输媒体 。
多播,服务器选择地址:
媒体服务器选择多播地址和端口,这是现场直播或准点播常用的方式。
多播,用户选择地址:
若服务器要加入正在进行的多播会议,多播地址、端口和密匙由会议描述给出。
会议描述的建立不在此规范中讨论。
1.7RTSP状态
RTSP控制通过与控制通道无关的独立协议发送的流。
例如,RTSP控制可能是使用TCP连接,而数据流使用UDP。
因此,即使媒体服务器没有收到请求,数据也会继续发送。
在会话
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RTSP 协议 详解 中文版