加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

网络流媒体协议之——RTSP协议

发布时间:2019-07-11 12:58:36 所属栏目:教程 来源:linux内核
导读:副标题#e# RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层。RTSP以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。该标准由IETF指定,对应的协议是RFC2326。 RTSP作为一个应用层协议,提供了一个可供扩

SETUP请求确定了具体的媒体流如何传输,该请求必须在PLAY请求之前发送。SETUP请求包含媒体流的URL和客户端用于接收RTP数据(audio or video)的端口以及接收RTCP数据(meta information)的端口。服务器端的回复通常包含客户端请求参数的确认,并会补充缺失的部分,比如服务器选择的发送端口。每一个媒体流在发送PLAY请求之前,都要首先通过SETUP请求来进行相应的配置。

  1. C->S: SETUP rtsp://example.com/media.mp4/streamid=0 RTSP/1.0 
  2.  CSeq: 3 
  3.  Transport: RTP/AVP;unicast;client_port=8000-8001 
  4.   
  5. S->C: RTSP/1.0 200 OK 
  6.  CSeq: 3 
  7.  Transport: RTP/AVP;unicast;client_port=8000-8001;server_port=9000-9001;ssrc=1234ABCD 
  8.  Session: 12345678 

(4) PLAY

客户端通过PLAY请求来播放一个或全部媒体流,PLAY请求可以发送一次或多次,发送一次时,URL为包含所有媒体流的地址,发送多次时,每一次请求携带的URL只包含一个相应的媒体流。PLAY请求中可指定播放的range,若未指定,则从媒体流的开始播放到结束,如果媒体流在播放过程中被暂停,则可在暂停处重新启动流的播放。

  1. C->S: PLAY rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 4 
  3.  Range: npt=5-20 
  4.  Session: 12345678 
  5.   
  6. S->C: RTSP/1.0 200 OK 
  7.  CSeq: 4 
  8.  Session: 12345678 
  9.  RTP-Info: url=rtsp://example.com/media.mp4/streamid=0;seq=9810092;rtptime=3450012 

(5) PAUSE

PAUSE请求会暂停一个或所有媒体流,后续可通过PLAY请求恢复播放。PAUSE请求中携带所请求媒体流的URL,若参数range存在,则指明在何处暂停,若该参数不存在,则暂停立即生效,且暂停时长不确定。

  1. C->S: PAUSE rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 5 
  3.  Session: 12345678 
  4.   
  5. S->C: RTSP/1.0 200 OK 
  6.  CSeq: 5 
  7.  Session: 12345678 

(6) TEARDOWN

结束会话请求,该请求会停止所有媒体流,并释放服务器上的相关会话数据。

  1. C->S: TEARDOWN rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 8 
  3.  Session: 12345678 
  4.   
  5. S->C: RTSP/1.0 200 OK 
  6.  CSeq: 8 

(7) GET_PARAMETER

检索指定URI数据中的参数值。不携带消息体的GET_PARAMETER可用来测试服务器端或客户端是否可通(类似ping的功能)。

  1. S->C: GET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 9 
  3.  Content-Type: text/parameters 
  4.  Session: 12345678 
  5.  Content-Length: 15 
  6.   
  7.  packets_received 
  8.  jitter 
  9.   
  10. C->S: RTSP/1.0 200 OK 
  11.  CSeq: 9 
  12.  Content-Length: 46 
  13.  Content-Type: text/parameters 
  14.   
  15.  packets_received: 10 
  16.  jitter: 0.3838 

(8) SET_PARAMETER

用于设置指定媒体流的参数。

  1. C->S: SET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 10 
  3.  Content-length: 20 
  4.  Content-type: text/parameters 
  5.   
  6.  barparam: barstuff 
  7.   
  8. S->C: RTSP/1.0 451 Invalid Parameter 
  9.  CSeq: 10 
  10.  Content-length: 10 
  11.  Content-type: text/parameters 
  12.   
  13.  barparam 

(9) REDIRECT

重定向请求,用于服务器通知客户端新的服务地址,客户端需要向这个新地址重新发起请求。重定向请求中可能包含Range参数,指明重定向生效的时间。客户端若需向新服务地址发起请求,必须先teardown当前会话,再向指定的新主机setup一个新的会话。

  1. S->C: REDIRECT rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 11 
  3.  Location: rtsp://bigserver.com:8001 
  4.  Range: clock=19960213T143205 

(10) ANNOUNCE

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读