·您当前的位置:首页 > 技术教程 > Rtmp技术 >

[RTSP]Rtsp协议介绍流媒体服务器的介绍

时间:2012-11-19 22:11blueidea.com
低带宽下, 流媒体的延迟, 流畅, 呈现效果比lighttpd等的http流式下载要好不少, 例如手机看视频,天生支持拖放, 如果是rtmp, 还能在同一条tcp链接里放多个流, 可以实现码率动态调整

当前状态
- 初步了解rtsp, 理论基础还不足

为什么要用流媒体
- 低带宽下, 流媒体的延迟, 流畅, 呈现效果比lighttpd等的http流式下载要好不少, 例如手机看视频
- 所以, 能一定程度上节省带宽
- 天生支持拖放, 如果是rtmp, 还能在同一条tcp链接里放多个流, 可以实现码率动态调整
- 如果流媒体服务器是自制的, 能实时/准确得知用户的观看行为, 例如时长, 拖放情况

1. 实时流协议RTSP

    RTSP协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。

1.1. 

  RTSP协议简介

    要实现 RTSP 的控制功能,不仅要有协议,而且要有专门的媒体播放器(media player)和媒体服务器(media server)。媒体服务器与媒体播放器的关系是服务器与客户的关系。  

RTSP协议介绍                                    图1 RTSP与RTP和RTCP的关系

    RTSP 仅仅是使媒体播放器能控制多媒体流的传送。因此,RTSP 又称为带外协议,而多媒体流是使用 RTP 在带内传送的。

1.2.    RTSP的报文结构

RTSP有两类报文:请求报文和响应报文。请求报文是指从客户向服务器发送请求报文,响应报文是指从服务器到客户的回答。

    由于 RTSP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

    RTSP报文由三部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行,RTSP请求报文的结构如图2所示。

    RTSP请求报文的方法包括:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、GET_PARAMETER和SET_PARAMETER。RTSP请求报文的常用方法及作用如表1所示。

         表1 RTSP请求报文的常用方法及作用

方法                                     作用

OPTIONS                                获得服务器提供的可用方法

DESCRIBE                               得到会话描述信息

SETUP                                  客户端提醒服务器建立会话,并确定传输模式

TEARDOWN                               客户端发起关闭请求

PLAY                                   客户端发送播放请求

响应报文的开始行是状态行,RTSP响应报文的结构如图3所示。

RTSP协议介绍

                        图3 RTSP响应报文的结构

1.3.    RTSP交互过程

C表示RTSP客户端,S表示RTSP服务端

C->S: OPTION request            //询问S有哪些方法可用

S->C: OPTION response        //S回应信息中包括提供的所有可用方法

C->S: DESCRIBE request      //要求得到S提供的媒体初始化描述信息

S->C: DESCRIBE response      //S回应媒体初始化描述信息,主要是sdp

C->S: SETUP request         //设置会话属性,以及传输模式,提醒S建立会话

S->C: SETUP response         //S建立会话,返回会话标识符及会话相关信息

C->S: PLAY request          //C请求播放

S->C: PLAY response          //S回应请求信息

S->C: 发送流媒体数据

C->S: TEARDOWN request     //C请求关闭会话

S->C: TEARDOWN response     //S回应请求

上述的过程是标准的RTSP流程,其中第3步和第4步是必需的。


- 据说是工业级开放标准, 例如rtmp也不错(能与client交互), 但确实adobe家的
- 所以, 服务器, 客户端, 类库丰富, 开源的质量也不错
- 相对成熟些, 标准都出来N久了

架设vod服务器, 有什么选择
- 自己写个, 可以用ffmpeg来解码, live555.com来处理rtsp协议, 缺点是耗时较久
- live555也有个streaming server, 但太初级了
- 用vlc, 支持从设备(摄像头或采集卡), 节目单(轮播), vod进行streaming服务, 有gui向导, 又有命令行和配置文件, 缺点是vlc质量有问题, 一个client揉了太多功能进去了
- 用Darwin streaming server, 历史悠久软件成熟, 有web管理界面, 是个地道的server, 缺点是版本老, 源码文档少, 支持类型少, 而且还有个莫名其妙的版权管理功能
- red5, 0.9的代码里已经有了net.rtsp包了, 这个是最容易定制的, java么, 简单些, 缺点是0.9还没出来呢, red5也一向不太稳定(社区/代码质量/法律风险)

1. 实时流协议RTSP

    RTSP协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。

1.1. 

  RTSP协议简介

    要实现 RTSP 的控制功能,不仅要有协议,而且要有专门的媒体播放器(media player)和媒体服务器(media server)。媒体服务器与媒体播放器的关系是服务器与客户的关系。  

RTSP协议介绍

    RTSP 仅仅是使媒体播放器能控制多媒体流的传送。因此,RTSP 又称为带外协议,而多媒体流是使用 RTP 在带内传送的。

1.2.    RTSP的报文结构

RTSP有两类报文:请求报文和响应报文。请求报文是指从客户向服务器发送请求报文,响应报文是指从服务器到客户的回答。

    由于 RTSP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

    RTSP报文由三部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行,RTSP请求报文的结构如图2所示。

    RTSP请求报文的方法包括:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、GET_PARAMETER和SET_PARAMETER。RTSP请求报文的常用方法及作用如表1所示。

         表1 RTSP请求报文的常用方法及作用

方法                                     作用

OPTIONS                                获得服务器提供的可用方法

DESCRIBE                               得到会话描述信息

SETUP                                  客户端提醒服务器建立会话,并确定传输模式

TEARDOWN                               客户端发起关闭请求

PLAY                                   客户端发送播放请求

响应报文的开始行是状态行,RTSP响应报文的结构如图3所示。

RTSP协议介绍

                        图3 RTSP响应报文的结构

1.3.    RTSP交互过程

C表示RTSP客户端,S表示RTSP服务端

C->S: OPTION request            //询问S有哪些方法可用

S->C: OPTION response        //S回应信息中包括提供的所有可用方法

C->S: DESCRIBE request      //要求得到S提供的媒体初始化描述信息

S->C: DESCRIBE response      //S回应媒体初始化描述信息,主要是sdp

C->S: SETUP request         //设置会话属性,以及传输模式,提醒S建立会话

S->C: SETUP response         //S建立会话,返回会话标识符及会话相关信息

C->S: PLAY request          //C请求播放

S->C: PLAY response          //S回应请求信息

S->C: 发送流媒体数据

C->S: TEARDOWN request     //C请求关闭会话

S->C: TEARDOWN response     //S回应请求

上述的过程是标准的RTSP流程,其中第3步和第4步是必需的。

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器