RTSP简介以及常用方法使用实例

      实时流协议(RTSP),英文全称为Real Time Streaming Protocol。它是一个用来获取所需要属性(编码方式、分辨率或者帧率等)实时流以及控制实时流的应用层协议。

      RTSP是一个基于文本的协议,它与HTTP十分相似。在RTSP中,保留了几乎所有的HTTP符号以及相关定义。所以,RTSP十分利于扩展,并且容易使用程序进行解析。
      RTSP虽然可以用来获取实时流,但是协议中并没有定义传输实时流的方式。它通过与其它的传输机制配合,例如RTP,进行实时流传输。在RTSP中,我们可以在SETUP方法中设置一些参数,以选择是用TCP还是用UDP作为RTP的底层传输协议。

      RTSP通过以会话(Session)的方式描述一个连接的生命周期。会话(Session)通过RTSP客户端使用RTSP的SETUP方法建立,然后RTSP客户端可以通过PLAY、PAUSE、RECORD等方法(Method)来控制实时流的播放、暂停以及回放等。当不再需要实时流的时候,RTSP客户端通过TEARDOWN方法(Method)来结束这个会话(Session)。
      RTSP通过与HTTP相似的方式来定义URL,RTSP完整的URL定义如下:
      rtsp URL = ( ”rtsp:” | ”rtspu:” | ”rtsps:” )
      ”//” host [ ”:” port ] [ abs path ]
      rtsp  = 使用可信的底层传输协议,例如TCP
      rtspu = 使用不可信的底层传输协议,例如UDP
      rtsps = 使用可信加密传输协议,例如TCP + TLS
      host  = 服务器的IP地址
      port  = 服务器的端口,该字段在忽略的情况下默认与服务器的554端口进行连接
      abs path = 所申请实时流的地址
      一个简单的示例如下:
      rtsp://media.example.com:554/twister/audiotrack

      让我们来看一下上面URL的abs path = twister/audiotrack。twister表示一个标识(Presentation) ,标识(Presentation)由一个或多个实时流组成。audiotrack表示标识(Presentation)中其中一个实时流的名称。从这个名称可以看出,我们要取的是一个音频流。如果abs path = twister/videotrack,则表示我们要取的是twister的视频流。有的服务器也支持下面的URL形式:
      rtsp://media.example.com:554/twister
      该URL表示取标识(Presentation)的视频流和音频流。


      与URL相似,RTSP也有与HTTP相似的请求(Request)定义。完整的RTSP请求(Request)定义如下:
      Request = Request-Line
           *( general-header  |
             request-header    | 
             entity-header )   
             CRLF
             [ message-body ]

      接下来让我们来看一下请求(Request)中每一部分的定义。
      Request-Line = Method SP Request-URI SP RTSP-Version CRLF

      Method = OPTIONS | 
      DESCRIBE               | 
      SETUP                     | 
      PLAY                        | 
      TEARDOWN             | 
       …
      SP

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值