RTSP(Real Time Streaming Protocol)实时流协议,是TCP/IP协议体系中的一个应用层协议。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。
RTSP没有“连接”这个概念,而由RTSP会话(session)代替(服务器端保持一个由识别符标记的会话)。RTSP会话没有绑定传输层连接(如TCP连接)。在RTSP会话期间,RTSP客户端可以打开或关闭多个到服务器端的可靠传输连接以发出RTSP请求。但也可以使用无连接传输协议,比如UDP,来发送RTSP请求。
rtsp前缀要求使用可靠协议(在Internet上指TCP协议)发出命令,而rtspu前缀则说明使用不可靠协议(在Internet指UDP协议)。
RTSP建立并控制一个或几个时间同步的连续流媒体,比如音频或视频。尽管在连续媒体流中有可能插入控制流但RTSP本身通常并不发送连续媒体流。换言之,RTSP充当多媒体服务器的“网络遥控器”。RTSP所控制的流可能用到RTP,但RTSP的操作并不依赖用来传送连续媒体的传输机制。实时流协议在语法和操作上有意地类似于HTTP/1.1,但有重要的不同。
RTSP引入了很多新方法并且有不同的协议标识符。
-
RTSP服务器在绝大多数默认情况下需要维持状态,而HTTP是无状态协议。
-
RTSP客户机和服务器都可以发出请求。
-
数据由信带外的另一个协议传送(但有一个特例)。
-
RTSP使用ISO 10646(UTF-8) 而不是ISO 8859-1,以配合当前HTML的国际化。
-
RTSP的URI请求时总是包含绝对URI。而由于历史原因造成的后向兼容性问题,HTTP/1.1只在请求中包含绝对路径,把主机名放入单独的头部域中。
-
当只有一个IP的主机要提供多个文档树时,可使“虚拟主机”的实现更简单。
方法描述
OPTIONS:
OPTIONS请求在任何时候都可能产生,例如:当一个客户端准备尝试一个非标准的请求时。它不影响服务器的状态。
DESCRIBE:
服务器取得请求URL所标识的表示或者媒体对象的描述。它可能使用同意头部(Accept header)来指出客户端能理解的描述格式。服务器以所请求的资源的描述作为回应。DESCRIBE 回复-响应对继续了RTSP的媒体初始化阶段。DESCRIBE响应必须包含它所描述的资源的所有媒体初始化信息。
ANNOUNCE:
该方法方法有两个目的:
当从客户端发往服务器端,ANNOUNCE向服务器端上传请求URL所标识的表示或媒体对象的描述。当从服务器端发往客户端,ANNOUNCE实时更新会话描述。
当一个新的媒体流加入一个表示(例如:在一个现场表示活动期间)时,整个表示而不仅是所增加的部分,应该被重发,以便部分删除。
SETUP:
让服务器给流分配资源,启动RTSP会话。
PLAY与RECORD:
启动SETUP所分配的流的数据传输。
PAUSE:
临时暂停流,而不释放服务器资源。
GET_PARAMETER:
请求用于获取URI所标识的一个表示或者流的参数的值。回复和响应的内容被留给具体实现。没有实体的GET_PARAMETER可能被用于测试客户端或者服务器端是否现场直播("ping")。
TEARDOWN:
释放流占用的资源,RTSP会话停止,从服务器端退出。