CSeq:732
Location: rtsp://bigserver.com:8001
Range:clock=19960213T143205Z-
10.11 录制(RECORD)
该方法根据表示描述,开始录制一个范围内的媒体数据。时间戳反映开始和结束时间(UTC).如果没给出时间范围,就使用表示描述提供的开始及结束时间。如果会话已经开始,则立即开始录制。
服务器决定是在请求-URI还是其他URI来录制数据。如果服务器不使用请求-URI,响应【应该】是201(已建立),并包含一个实体-该实体描述了请求的状态并给出新资源,还包含一个位置头部(Locationheader)。
一个支持录制现场表示的服务器【必须】支持时钟范围(clock range)式;smpte式是没有意义的。
在此例子中,媒体服务器在之前被邀请进所指示的会议中。
C->S: RECORD rtsp://example.com/meeting/audio.en RTSP/1.0
CSeq:954
Session: 12345678
Conference: 128.16.64.19/32492374
10.12 嵌入(交织)的二进制数据
一些防火墙设计和其他环境可能会迫使服务器交织插入RTSP方法和流数据。除非必要,否则应该避免这种交织,因为它使客户端和服务器的操作复杂化并强加了额外的负担。交织的二进制数据【应该】只在RTSP通过TCP承载时使用。
像RTP包这样的流数据被封装为这样的形式:以ASCII码的"$"符号(0x24)为封装标志,后面是一个单字节信道标识符,然后紧跟一个网络字节序的双字节二进制整数,该整数表示所封装二进制数据的长度。再后面紧跟着没有CRLF,但包含上层协议头部的流数据。每个 $ 块包含且仅包含一个上层协议数据单元,例如,一个RTP包。
信道标识符在传输头部(Transportheader)通过参数交织(interleaved)定义(章节12.39)。
当选择RTP作为应用层传输协议,TCP连接上的RTCP消息也被服务器交织处理。默认把RTCP包放在比RTP信道高的第一个可用信道上。客户端【可能】会显式地在另一信道上请求RTCP包。这通过在传输头部(Transport header,章节12.39)的交织(interleaved)参数上给出两个信道来实现。
如果这种形式下有两个或更多流被交织,就需要RTCP。同时,在网络配置有要求时,这提供了用TCP控制连接来式地传输RTP/RTCP包的便利方法,并在可能时用UDP传输它们。
C->S: SETUP rtsp://foo.com/bar.file RTSP/1.0
CSeq: 2
Transport: RTP/P/TCP;interleaved=0-1
S->C: RTSP/1.0 200 OK
CSeq: 2
Date:05 Jun 1997 18:57:18 GMT
Transport: RTP/P/TCP;interleaved=0-1
Session: 12345678
C->S: PLAY rtsp://foo.com/bar.file RTSP/1.0
CSeq: 3
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 3
Session: 12345678
Date:05 Jun 1997 18:59:15 GMT
RTP-Info: url=rtsp://foo.com/bar.file;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47669-23.html
1年后车涨价了
全系统的可靠性