流媒体数据传输RTSP
一、流媒体
1.1 流媒体基本概念
流媒体(streaming media)
是指将一连串的媒体数据压缩后,经过网上分段发送数据
,在网上即时传输影音
以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。
1.2流式传输
是实现流媒体的关键技术
流式传输
是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户计算机连续、实时传送。主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。
实现流式传输有两种方法:实时流式传输(Real time streaming)和顺序流式传输(progressive streaming)
1.2.1顺序流式传输
顺序流式传输
是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,经常被称作HTTP流式传输。
1.2.2实时流式传输
实时流式传输
指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流与HTTP流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。实时流式传输必须配匹连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。
二、实时流媒体协议
2.1 RTSP实时流媒体协议
- 实时流传输协议,是TCP/IP协议体系中的一个应用层协议。
- 客户机和服务器都可以发出请求,即RTSP可以是双向的。
- 该协议用于C/S模型,HTTP 有点类似,是一个基于文本的协议,用于在客户端和服务器端建立和协商实时流会话。
- 实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体。RTSP充当多媒体服务器的网络远程控制
客户端要播放RTSP媒体流,就需要知道媒体源的URL,RTSP的URL格式一般如下:
rtsp://host[:port]/ < filename >
host: 有效的域名或IP地址;
port: 端口号,缺省为554,若为缺省可不填写,否则必须写明。
例如,一个完整的RTSP URL可写为:
2.2 HTTP与RTSP比较
- RTSP 请求与HTTP请求:
HTTP请求只能从客户端发出,而RTSP请求既可以从客户端发出,也可以从服务器发出。 - RTSP与HTTP的协议状态:
HTTP协议是无状态的,而RTSP服务器则需要保持状态。
2.3 RTSP控制分组
- RTSP协议基于TCP 完成RTSP请求报文和响应报文的传输。 RTSP的默认端口为554。
- RTP协议基于UDP协议完成流媒体数据的实时传输。
- RTCP协议基于UDP协议提供客户端和服务器有关当前网络拥塞和以及实时流传输质量等信息
2.4 RTSP方法
RTSP是一种基于文本的协议,用CRLF(回车换行)作为每一行的结束符,其好处是,在使用过程中可以方便地增加自定义参数,也方便抓包分析。从消息传送方向上来分,RTSP的报文有两类:请求报文和响应报文。请求报文是指从客户端向服务器发送的请求(也有少量从服务器向客户端发送的请求),响应报文是指从服务器到客户端的回应
RTSP请求报文的常用方法与作用:
- 首先客户端连接到流媒体服务器并发送一个RTSP描述请求(DESCRIBE request)
- 服务器通过一个SDP(Session DescriptionProtocol)描述来进行反馈,(DESCRIBEresponse),反馈信息包括流数量、媒体类型等信息。
- 客户端分析该SDP描述,并为会话中的每一个流发送一个RTSP连接建立请求(SETUPrequest),该命令会告诉服务器用于接收媒体数据的端口,
- 服务器响应该请求(SETUP response)并建立连接之后,就开始传送媒体流(RTP包)到客户端。
- 在播放过程中客户端还可以向服务器发送请求来控制快进、快退和暂停等。
- 最后,客户端可发送一个终止请求(TEARDOWN request)来结束流媒体会话。