S->CRTSP/1.0 200 OK
Transport: RTP/P/UDP;unicast;client_port=6970-6971;
server_port=6970-6971;mode=play
CSeq: 2
Session: 2034820394
C->SPLAY rtsp://foo.com/test.wav RTSP/1.0
CSeq: 3
Session: 2034820394
S->CRTSP/1.0 200 OK
CSeq: 3
Session: 2034820394
RTP-Info: url=rtsp://foo.com/test.wav/streamid=0;
seq=981888;rtptime=3781123
注意SETUP命令里的不同URL,和之后在PLAY命令里切换回合URL。这在有多个流被合控制的情况下完全合理,但在流的数量为一时就不那么直观了。
这种特殊情况下,推荐的是服务器能够容许实现发送:
C->S PLAYrtsp://foo.com/test.wav/streamid=0 RTSP/1.0
CSeq: 3
在最坏的情况里,服务器会返回:
S->CRTSP/1.0 460 Only aggregate operation allowed
CSeq: 3
有些人还希望服务器实现也能容许下面这样的:
C->SSETUP rtsp://foo.com/test.wav RTSP/1.0
Transport: rtp/avp/udp;client_port=6970-6971;mode=play
CSeq: 2
因为文件里只有一个流,所以它也不会产生歧义。
14.4 现场媒体表示使用多播
媒体服务器M选择多播地址和端口号。在这里,我们假设web服务器只包含指向完整描述的指针,而媒体服务器M维护着完整描述。
C->W:GET /concert.sdp HTTP/1.1
Host:
W->C:HTTP/1.1 200 OK
Content-Type: application/x-rtsl
<session>
<track src="rtsp://live.example.com/concert/audio">
</session>
C->M:DESCRIBE rtsp://live.example.com/concert/audio RTSP/1.0
CSeq: 1
M->C:RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Length: 44
v=0
o=- 2890844526 2890842807 IN IP4 192.16.24.202
s=RTSP Session
m=audio 3456 RTP/P 0
a=control:rtsp://live.example.com/concert/audio
c=IN IP4 224.2.0.1/16
C->M:SETUP rtsp://live.example.com/concert/audio RTSP/1.0
CSeq: 2
Transport: RTP/P;multicast
M->C:RTSP/1.0 200 OK
CSeq: 2
Transport: RTP/P;multicast;destination=224.2.0.1;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47669-38.html
要面对复杂多层次挑战
哇
是不是山寨出来的