跳到主要内容

3 Protocol Parameters (协议参数)

3 Protocol Parameters (协议参数)​

3.1 RTSP Version (RTSP 版本)​

[H3.1] 适用, 将 HTTP 替换为 RTSP.

3.2 RTSP URL (RTSP URL)​

"rtsp" 与 "rtspu" 方案 (scheme) 用于通过 RTSP 协议引用网络资源.本节定义 RTSP URL 的方案专有语法与语义.

rtsp_URL  =   ( "rtsp:" | "rtspu:" ) "//" host [ ":" port ] [ abs_path ]
host = <合法的 Internet 主机域名或点分十进制形式的 IP 地址, 见 RFC 1123 第 2.1 节>
port = *DIGIT

abs_path 定义见 [H3.2.1].

注意, 片段 (fragment) 与查询 (query) 标识符目前尚无明确定义之含义, 其解释留给 RTSP 服务器.

方案 rtsp 要求通过可靠协议 (在 Internet 上为 TCP) 发出命令, 而方案 rtspu 表示不可靠协议 (在 Internet 上为 UDP).

若端口为空或未给出, 则假定端口为 554.语义为: 所标识的资源可由 RTSP 在 host 上监听该端口的 TCP (方案 "rtsp") 连接或 UDP (方案 "rtspu") 数据包的服务器加以控制, 且该资源的 Request-URI 为 rtsp_URL.

应尽可能避免在 URL 中使用 IP 地址 (见 RFC 1924 [19]).

演示或流由文本形式的媒体标识符标识, 使用 URL 的字符集与转义约定 [H3.2] (RFC 1738 [20]).URL 可指向单一流或流的聚合, 即演示.因此, 第 10 节所述请求可适用于整个演示或演示内的单一流.注意, 某些请求方法仅能用于流而不能用于演示, 反之亦然.

例如, RTSP URL:

rtsp://media.example.com:554/twister/audiotrack

标识演示 "twister" 中的音频流, 可通过向主机 media.example.com 的 554 端口建立的 TCP 连接发出的 RTSP 请求加以控制.

又如, RTSP URL:

rtsp://media.example.com:554/twister

标识演示 "twister", 其可由音频与视频流组成.

这并不意味着在 URL 中引用流存在标准方式.演示描述定义演示中的层次关系以及各单独流的 URL.演示描述可将某流命名为 "a.mov", 将整个演示命名为 "b.mov".

RTSP URL 的路径成分对客户端是不透明的, 并不隐含服务器上的任何特定文件系统结构.

这种解耦还允许仅通过替换 URL 中的方案, 将演示描述与非 RTSP 媒体控制协议配合使用.

3.3 Conference Identifiers (会议标识符)​

会议标识符对 RTSP 不透明, 使用标准 URI 编码方法编码 (即 LWS 以 % 转义).可包含任意八位组值.会议标识符 MUST 全局唯一.对 H.323, 应使用 conferenceID 值.

conference-id =   1*xchar

会议标识符用于使 RTSP 会话能够从媒体服务器所参与的多媒体会议获取参数.这些会议由本规范范围之外的协议创建, 例如 H.323 [13] 或 SIP [12].RTSP 客户端不必显式提供传输信息, 例如可要求媒体服务器改用会议描述中的取值.

3.4 Session Identifiers (会话标识符)​

会话标识符为任意长度的不透明字符串.线性空白 (LWS) 必须经 URL 转义.会话标识符 MUST 随机选取且 MUST 至少八个八位组长, 以增加猜测难度.(见第 16 节.)

session-id   =   1*( ALPHA | DIGIT | safe )

3.5 SMPTE Relative Timestamps (SMPTE 相对时间戳)​

SMPTE 相对时间戳表示相对于剪辑起点的时间.相对时间戳以 SMPTE 时间码表示, 以实现帧级访问精度.时间码格式为 hours:minutes:seconds:frames.subframes, 原点位于剪辑起点.默认 smpte 格式为 "SMPTE 30 drop", 帧率为每秒 29.97 帧.亦可 MAY 通过备用 "smpte time" 用法支持其他 SMPTE 码 (如 "SMPTE 25").时间值中 "frames" 字段可取 0 至 29.每秒 30 帧与 29.97 帧之差通过每分钟丢弃前两个帧索引 (值 00 与 01) 处理, 每第十分钟除外.若帧值为零, 可省略.子帧以百分之一帧计量.

smpte-range  =   smpte-type "=" smpte-time "-" [ smpte-time ]
smpte-type = "smpte" | "smpte-30-drop" | "smpte-25" ; 可添加其他时间码
smpte-time = 1*2DIGIT ":" 1*2DIGIT ":" 1*2DIGIT [ ":" 1*2DIGIT ] [ "." 1*2DIGIT ]

示例: smpte=10:12:33:20- smpte=10:07:33- smpte=10:07:00-10:07:33:05.01 smpte-25=10:07:00-10:07:33:05.01

3.6 Normal Play Time (正常播放时间)​

Normal play time (正常播放时间, NPT) 表示相对于演示起点的流绝对位置.时间戳由十进制小数组成.小数点左侧可用秒表示, 或用时, 分, 秒表示.小数点右侧表示秒的分数.

演示起点对应 0.0 秒.负值未定义.特殊常量 now 定义为实况事件的当前瞬间, 仅可用于实况事件.

NPT 按 DSM-CC 定义: "直观上, NPT 是观众与节目关联的时钟, 常在录像机上以数字显示.在正常播放模式 (scale = 1) 下 NPT 正常递增; 在快进 (高正 scale) 时更快递增; 在快退 (高负 scale) 时递减; 在暂停模式下固定.NPT (在逻辑上) 等价于 SMPTE 时间码." [5]

npt-range    =   ( npt-time "-" [ npt-time ] ) | ( "-" npt-time )
npt-time = "now" | npt-sec | npt-hhmmss
npt-sec = 1*DIGIT [ "." *DIGIT ]
npt-hhmmss = npt-hh ":" npt-mm ":" npt-ss [ "." *DIGIT ]
npt-hh = 1*DIGIT ; 任意正数
npt-mm = 1*2DIGIT ; 0-59
npt-ss = 1*2DIGIT ; 0-59

示例: npt=123.45-125 npt=12:05:35.3- npt=now-

语法符合 ISO 8601.npt-sec 记法便于自动生成, npt-hhmmss 记法便于人读."now" 常量使客户端能够请求接收实况馈送而非存储或延时版本, 因绝对时间与零时间在此情形下均不适用.

3.7 Absolute Time (绝对时间)​

绝对时间以 ISO 8601 时间戳表示, 使用 UTC (GMT).可指明秒的分数.

utc-range    =   "clock" "=" utc-time "-" [ utc-time ]
utc-time = utc-date "T" utc-time "Z"
utc-date = 8DIGIT ; < YYYYMMDD >
utc-time = 6DIGIT [ "." fraction ] ; < HHMMSS.fraction >

1996 年 11 月 8 日 UTC 14 时 37 分 20.25 秒之示例:

19961108T143720.25Z

3.8 Option Tags (选项标签)​

Option tags (选项标签) 为用于标示 RTSP 中新选项的唯一标识符.这些标签用于 Require (第 12.32 节) 与 Proxy-Require (第 12.27 节) 头部字段.

语法:

option-tag   =   1*xchar

新的 RTSP 选项的创建者应在选项名前加反向域名前缀 (例如, 若发明人可在 "foo.com" 联系, 则 "com.foo.mynewfeature" 可作为合适名称), 或在 Internet Assigned Numbers Authority (IANA) 注册新选项.

3.8.1 Registering New Option Tags with IANA (向 IANA 注册新选项标签)​

注册新的 RTSP 选项时, 应提供以下信息:

  • 选项的名称与描述.名称可为任意长度, 但 SHOULD 不超过约二十个字符.名称 MUST NOT 包含空格, 控制字符或句点.

  • 指明谁对该选项拥有变更控制权 (例如 IETF, ISO, ITU-T, 其他国际标准化机构, 联合体或特定公司或公司集团);

  • 若有进一步描述, 应给出引用, 例如 (按优先顺序) RFC, 已发表论文, 专利申请, 技术报告, 有文档的源代码或计算机手册;

  • 对专有选项, 应提供联系信息 (邮政地址与电子邮件地址);