logo资料库

rtsp 标准文档中文版 pdf文档.pdf

第1页 / 共93页
第2页 / 共93页
第3页 / 共93页
第4页 / 共93页
第5页 / 共93页
第6页 / 共93页
第7页 / 共93页
第8页 / 共93页
资料共93页,剩余部分请下载后查看
1 介绍
 1.1 目的
1.2 要求
 1.3 术语
 1.4 协议特点
1.5 扩展RTSP
 1.6 整体运作
 1.7 RTSP状态
 1.8 与其他协议关系
 2 符号约定
 3 协议参数
 3.1 RTSP版本
 3.2 RTSP URL
3.3 会议标识
 3.4 会话标识
 3.5 SMPTE 相对时间戳
 3.6正常播放时间
 3.7 绝对时间
 3.8 选择标签
 4 RTSP消息
 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 实体主体
 9 连接
 9.1 管道
 9.2 可靠性及确认
 10 方法定义 
 10.1 OPTIONS(可选项)
 10.2 描述(DESCRIBE)
 10.3 通知(ANNOUNCE)
 10.4 建立(SETUP)
 10.5 播放(PLAY)
10.6 暂停(PAUSE)
 10.7 断开(TEARDOWN)
 10.8 获取参数(GET_PARAMETER)
 10.9 设置参数(SET_PARAMETER)
10.10 重定向(REDIRECT)
 10.11 录制(RECORD)
 10.12 嵌入(交织)的二进制数据
 11 状态码定义
 11.1 成功 2xx
 11.2 重定向 3xx
 11.3 客户端错误 4xx
12 头部域定义
13 Caching
14 示例
14.1 按需点播(单播)
14.2 容器文件的流化
14.3 单流容器文件
14.4 现场媒体表示使用多播
14.5 向已存在的会话播放媒体
14.6 录制
 15 语法
 15.1 基本语法
16 安全考虑
附录A:RTSP 协议状态机
附录B:同RTP交互
附录C:用SDP描述RTSP会话
附录D:最小RTSP实现
1 介绍 ..............................................................................................................................................3 1.1 目的....................................................................................................................................3 1.2 要求....................................................................................................................................4 1.3 术语....................................................................................................................................4 1.4 协议特点............................................................................................................................6 1.5 扩展RTSP ..........................................................................................................................8 1.6 整体运作............................................................................................................................8 1.7 RTSP状态 ...........................................................................................................................9 1.8 与其他协议关系..............................................................................................................10 2 符号约定.....................................................................................................................................10 3 协议参数.....................................................................................................................................12 3.1 RTSP版本 .........................................................................................................................12 3.2 RTSP URL ........................................................................................................................13 3.3 会议标识..........................................................................................................................15 3.4 会话标识..........................................................................................................................15 3.5 SMPTE 相对时间戳........................................................................................................16 3.6 正常播放时间...................................................................................................................16 3.7 绝对时间..........................................................................................................................17 3.8 选择标签..........................................................................................................................18 4 RTSP消息 ....................................................................................................................................18 4.1 消息类型..........................................................................................................................19 4.2 消息头部..........................................................................................................................19 4.3 消息主体..........................................................................................................................20 4.4 消息长度..........................................................................................................................21 5 普通头部域.................................................................................................................................21 6 请求 ............................................................................................................................................21 6.1 请求行..............................................................................................................................22 6.2 请求头部域......................................................................................................................23 7 响应 ............................................................................................................................................23 7.1 状态行..............................................................................................................................24 7.1.1 状态码和原因解释...............................................................................................24 7.1.2 响应头部域...........................................................................................................29 8 实体 ............................................................................................................................................29 8.1 实体头部域......................................................................................................................29 8.2 实体主体..........................................................................................................................30 9 连接 ............................................................................................................................................30 9.1 管道..................................................................................................................................30 9.2 可靠性及确认..................................................................................................................31 10 方法定义...................................................................................................................................31 10.1 OPTIONS(可选项)....................................................................................................32 10.2 描述(DESCRIBE) ....................................................................................................33 10.3 通知(ANNOUNCE) .................................................................................................34 10.4 建立(SETUP) ...........................................................................................................35 10.5 播放(PLAY)..............................................................................................................36
10.6 暂停(PAUSE) ...........................................................................................................38 10.7 断开(TEARDOWN).................................................................................................39 10.8 获取参数(GET_PARAMETER) ..............................................................................40 10.9 设置参数(SET_PARAMETER)...............................................................................41 10.10 重定向(REDIRECT) ..............................................................................................42 10.11 录制(RECORD)......................................................................................................42 10.12 嵌入(交织)的二进制数据......................................................................................43 11 状态码定义...............................................................................................................................44 11.1 成功 2xx........................................................................................................................44 11.2 重定向 3xx....................................................................................................................44 11.3 客户端错误 4xx............................................................................................................44 12 头部域定义...............................................................................................................................46 13 Caching ......................................................................................................................................63 14 示例...........................................................................................................................................64 14.1 按需点播(单播)........................................................................................................64 14.2 容器文件的流化............................................................................................................67 14.3 单流容器文件................................................................................................................70 14.4 现场媒体表示使用多播................................................................................................72 14.5 向已存在的会话播放媒体............................................................................................73 14.6 录制................................................................................................................................75 15 语法...........................................................................................................................................77 15.1 基本语法........................................................................................................................77 16 安全考虑...................................................................................................................................79 附录A:RTSP 协议状态机...........................................................................................................81 附录B:同RTP交互.......................................................................................................................84 附录C:用SDP描述RTSP会话 .....................................................................................................85 附录D:最小RTSP实现 ................................................................................................................89
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 使用 ISO 10646(UTF-8) 而不是 ISO 8859-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 中的文字部分中,这暗示集合中的流的合 控制,但并非必须。 表示描述(presentation description): 表示描述包含在表示(presentation)中一个或者多个媒体流的信息。比如,编码,网络地址 和内容的信息,的集合。另外,其他 IETF 协议,如 SDP 协议使用术语"会话(session)"代替" 现场表示"。表示描述可以采用包括会话描述(session description)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 (RFC 2068 [2, Section 11.1])和 digest (RFC 2069 [8])授权都可直接使用。也可以重用传输层或网络层安全机制。 独立于传输:
RTSP 即可使用不可靠数据报协议(UDP)、可靠数据报协议(RDP),如要实现应用级可 靠,也可使用可靠流协议如 TCP。 多服务器支持: 表示(presentation)中的每个流可放在不同服务器上,客户端自动同不同服务器建立几个并 发控制的会话,媒体同步在传输层执行。 录制设备控制: 协议可控制记录和回放设备,以及可在两种模式之间切换的设备(VCR)。 流控制与会议初始化分离: 流控制与邀请媒体服务器入会相分离;仅要求会议初始化协议可提供,或可用来创建具 有唯一性的会议标识号。具体地说, SIP 或 H.323 可用来邀请服务器入会。 适合专业应用: 通过 SMPTE 时标,RTSP 支持帧级别精度,以支持远程数字编辑。 适合专业应用: RTSP 依赖 SMPTE 时间戳支持帧级精度,使得可以进行远程数字编辑。 表示描述中立: 协议没强行指定特定的表示或元文件格式,可传达所用的格式类型;然而,表示描述必 须至少包含一个 RTSP URI。 代理与防火墙友好: 协议需由应用层协同传输层(SOCKS [14]) 防火墙友好地进行处理。防火墙需要理解 SETUP 方法,以为 UDP 媒体流打开一个"洞口"。 HTTP 友好: 此处,RTSP明智地重用了HTTP概念,使现有的基础结构可被重用。这些基础结构包括 Internet 内容选择平台(PICS:Platform for Internet Content Selection [15,16]),以便通过相关 标签访问内容。但由于在大多数情况下,控制连续媒体需要服务器状态 , RTSP不仅仅向 HTTP 添加方法。 合适的服务器控制: 若客户端能启动一个流,它必须也能停止一个流。服务器不能启动一个用户不能停止的 流。
传输协商: 实际处理连续媒体流前,客户端可协商传输方法。 性能协商: 若基础特性被禁用,必须有某种明确的机制让用户决定哪种方法将不不被实现。这允许 用户提出适合的用户界面。 例如,如果不允许寻找,用户界面必须能禁止位置条滑动。 早期曾要求 RTSP 支持多用户,但现在有了更好的方案,就是保证 RTSP 能很容易扩展 成支持多用户即可。因为流的标志可以被多个控制流使用,因此可以"轮换持有控制器"。协 议不涉及到多个客户端如何协调入口--这项任务被留给"社会协议"或其他层。 1.5 扩展 RTSP 由于不是所有媒体服务器有着相同的功能,媒体服务器有必要支持不同的请求集。例如: 服务器可能只能回放,因此不必支持录制请求。 用于提供现场直播的服务器可能不支持寻找(绝对位置)功能。 一些服务器可能不支持设置流参数,因此不支持 GET_PARAMETER 和 SET_PARAMETER 请求。 但服务器应该实现所有 12 章中要求的标题域。 表示 描述(presentation description)应当 保 证不 提出 服 务器 不支 持 的功 能, 这 种情 形和 HTTP/1.1 [2]中,[H19.6]所描述的方法不太可能被所有服务器都支持的情形一致。 RTSP 可以如下三种方式扩展,按所支持的改变多少排序: *已有的方法可以扩展加入新参数,只要这些参数可以被接收方安全地忽略。(这和给一 种 HTML tag 增加新标签是一样的)如果客户端在请求失败时需要一个拒绝确认,需要在请 求:字段(见 Section 12.32)中加入一个对应于该扩展的标签。 *可以加入新方法。如果接收方不理解请求,它就返回一个 501 错误码(意指未实现), 发送方就不应再尝试这种方法。客户端可以用 OPTIONS 方法去询问服务器支持的方法。服 务器应该在公共回应头里列出它所支持的所有方法。 *可以定义新版本的协议,以支持几乎所有方面的改变(除了版本协议号的位置)。 1.6 整体运作 每个表示和媒体流可用 RTSP URL 识别。表示组成的整个表示与媒体属性由表示描述
分享到:
收藏