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

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

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

RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层。RTSP以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。该标准由IETF指定,对应的协议是RFC2326。

RTSP作为一个应用层协议,提供了一个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要用来控制具有实时特性的数据的发送,但其本身并不用于传送流媒体数据,而必须依赖下层传输协议(如RTP/RTCP)所提供的服务来完成流媒体数据的传送。RTSP负责定义具体的控制信息、操作方法、状态码,以及描述与RTP之间的交互操作。RTSP媒体服务协议框架如下:

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

客户端要播放RTSP媒体流,就需要知道媒体源的URL,RTSP的URL格式一般如下:

  1. rtsp://host[:port]/[abs_path]/content_name 
  • host:有效的域名或IP地址;
  • port:端口号,缺省为554,若为缺省可不填写,否则必须写明。

例如,一个完整的RTSP URL可写为:

  1. rtsp://192.168.1.67:554/test 

又如目前市面上常用的海康网络摄像头的RTSP地址格式为:

  1. rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream 

示例:

  1. rtsp://admin:12345@192.168.1.67:554/h264/ch1/main/av_stream 
  2. rtsp://admin:12345@192.168.1.67/mpeg4/ch1/sub/av_stream 

RTSP报文

对RTSP协议的使用有了一个大概的了解之后,我们来看一下RTSP报文结构。

RTSP是一种基于文本的协议,用CRLF(回车换行)作为每一行的结束符,其好处是,在使用过程中可以方便地增加自定义参数,也方便抓包分析。从消息传送方向上来分,RTSP的报文有两类:请求报文和响应报文。请求报文是指从客户端向服务器发送的请求(也有少量从服务器向客户端发送的请求),响应报文是指从服务器到客户端的回应。

RTSP请求报文的常用方法与作用:

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

一次基本的RTSP交互过程如下,C表示客户端,S表示服务端。

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

首先客户端连接到流媒体服务器并发送一个RTSP描述请求(DESCRIBE request),服务器通过一个SDP(Session DescriptionProtocol)描述来进行反馈(DESCRIBEresponse),反馈信息包括流数量、媒体类型等信息。客户端分析该SDP描述,并为会话中的每一个流发送一个RTSP连接建立请求(SETUPrequest),该命令会告诉服务器用于接收媒体数据的端口,服务器响应该请求(SETUP response)并建立连接之后,就开始传送媒体流(RTP包)到客户端。在播放过程中客户端还可以向服务器发送请求来控制快进、快退和暂停等。最后,客户端可发送一个终止请求(TEARDOWN request)来结束流媒体会话。

下面我们通过具体的消息实例来进一步了解一下RTSP的工作过程:

(1) OPTIONS

OPTIONS请求是客户端向服务器询问可用的方法,请求和回复实例如下:

  1. C->S: OPTIONS rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 1 
  3.  Require: implicit-play 
  4.  Proxy-Require: gzipped-messages 
  5.   
  6. S->C: RTSP/1.0 200 OK 
  7.  CSeq: 1 
  8.  Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE 

(2) DESCRIBE

客户端向服务器请求媒体资源描述,服务器端通过SDP(Session Description Protocol)格式回应客户端的请求。资源描述中会列出所请求媒体的媒体流及其相关信息,典型情况下,音频和视频分别作为一个媒体流传输。实例如下:

  1. C->S: DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0 
  2.  CSeq: 2 
  3.   
  4. S->C: RTSP/1.0 200 OK 
  5.  CSeq: 2 
  6.  Content-Base: rtsp://example.com/media.mp4 
  7.  Content-Type: application/sdp 
  8.  Content-Length: 460 
  9.   
  10.  m=video 0 RTP/AVP 96 
  11.  a=control:streamid=0 
  12.  a=range:npt=0-7.741000 
  13.  a=length:npt=7.741000 
  14.  a=rtpmap:96 MP4V-ES/5544 
  15.  a=mimetype:string;"video/MP4V-ES" 
  16.  a=AvgBitRate:integer;304018 
  17.  a=StreamName:string;"hinted video track" 
  18.  m=audio 0 RTP/AVP 97 
  19.  a=control:streamid=1 
  20.  a=range:npt=0-7.712000 
  21.  a=length:npt=7.712000 
  22.  a=rtpmap:97 mpeg4-generic/32000/2 
  23.  a=mimetype:string;"audio/mpeg4-generic" 
  24.  a=AvgBitRate:integer;65790 
  25.  a=StreamName:string;"hinted audio track" 

(3) SETUP

(编辑:源码门户网)

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

热点阅读