服务器端对SETUPRequest产生一个Session Identifiers。
如:

Session: 89056146913001
Transport: RTP/P;unicast;source=192.168.1.3;client_port=63086-63087;server_port=6970-6971;ssrc=00004CDF
PLAY:
PLAY方法告知服务器通过SETUP中指定的机制开始发送数据 。rtsp协议编程在尚未收到SETUP请求的成功应答之前,客户端不可以发出PLAY请求。rtsp协议编程
PLAY请求将正常播放时间(normal play time)定位到指定范围的起始处,并且传输数据流直到播放范围结束。PLAY请求可能被管道化(pipelined),即放入队列中(queued);服务器必须将PLAY请求放到队列中有序执行。也就是说,后一个PLAY请求需要等待前一个PLAY请求完成才能得到执行。
比如,在下例中,不管到达的两个PLAY请求之间有多紧凑,服务器首先play第10到15秒,然后立即第20到25秒,最后是第30秒直到结束。
CSeq: 835
Session: 89056146913001
Range: npt=10-15
C->S: PLAY rtsp://192.168.1.3:554/easytest.mp4 RTSP/1.0
CSeq: 836
Session: 89056146913001
Range: npt=20-25
C->S: PLAY rtsp://192.168.1.3:554/easytest.mp4 RTSP/1.0
CSeq: 837
Session: 89056146913001
Range: npt=30-
Range头可能包含一个时间参数。该参数以UTC式指定了播放开始的时间。如果在这个指定时间后收到消息,那么播放立即开始。时间参数可能用来帮助同步从不同数据源获取的数据流。
不含Range头的PLAY请求也是合法的。它从媒体流开头开始播放,直到媒体流被暂停。如果媒体流通过PAUSE暂停,媒体流传输将在暂停点(the pause point)重新开始。
如果媒体流正在播放,那么这样一个PLAY请求将不起更多的作用,只是客户端可以用此来测试服务器是否存活。
PAUSE:
PAUSE请求引起媒体流传输的暂时中断。如果请求URL中指定了具体的媒体流,那么只有该媒体流的播放和记录被暂停(halt)。比如,指定暂停音频,播放将会无声。如果请求URL指定了一组流,那么在该组中的所有流的传输将被暂停。如:
C->S: PAUSE rtsp://example.com/fizzle/foo RTSP/1.0
CSeq: 834
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 834
Date: 23 Jan 1997 15:35:06 GMT
PAUSE请求中可能包含一个Range头用来指定何时媒体流暂停,我们称这个时刻为暂停点(pause point)。该头必须包含一个精确的,而不是一个时间范围。媒体流的正常播放时间设置成暂停点。当服务器遇到在任何当前挂起(pending)的PLAY请求中指定的时间点后,暂停请求生效。如果Range头指定了一个时间超出了任何一个当前挂起的PLAY请求,将返回错误”457 Invalid Range” 。如果一个媒体单元(比如一个音频或视频禎)正好在一个暂停点开始,那么表示将不会被播放或记录。如果Range头缺失,那么在收到暂停消息后媒体流传输立即中断,并且暂停点设置成当前正常播放时间。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47689-2.html
美帝此次行动
当年美苏也是这样在海上角逐了很久