rtsp连接断开_RTSP详解

关于 RTSP.

RTSP协议是一个非常类似HTTP协议的流控制协议。它们都使用纯文本来发送信息,而且rtsp协议的语法也和HTTP类似。Rtsp一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码 。这是个好消息。

它们主要的区别是HTTP协议是没有状态的, http协议在发送一个命令后,连接会断开,而且命令之间没有依赖性。不同的是RTSP的命令需要知道现在正处于一个什么状态,也就是说rtsp的命令总是按照顺序来发送,某个命令总在另外一个命令之前要发送。Rtsp不管处于什么状态都不会去断掉连接。

HTTP 协议默认使用80端口,而RTSP 默认使用554端口。如果一些服务器因为某些安全的原因而封掉了这个端口,那代理和防火墙可能不让RTSP消息通过,需要管理员去放开554端口,而使得rtsp协议能通过。

RTSP 并非只是微软在用!

这是一个公开的规范,在这个规范上开发了很多的流服务器。甚至Linux服务提供者和苹果的程序员也使用rtsp协议以及Real Networks流媒体。似乎整个世界的网络流传输都用这个协议。然而,微软并不只在rtsp上有所作为。

微软和RTSP.

在写这个文档的时候,微软正处于从首选MMS协议转换到首选采用RTSP协议的过程中。这个说明在Media Player9.0版本和流媒体服务器2003版本之后,我们会看到微软将rtsp协议作为流媒体传输的主要协议 。

随着时间慢慢的流逝,我们会发现mms协议正逐步走出人们的视野。It is only assumed that this is so MS can say they are being open with their protocols (rtsp is an open standard) while at the same time disregarding the need to publicise their own MMS protocol once its gone from media player. 然而,mms还没有真的死亡,至少在接下来的几年中我们依然可以看到它在流媒体传输中的身影。

是否微软的RTSP协议和标准的开放式RTSP不同?

是的。跟在RFC2326(1998年四月)中定义的原始RTSP协议相比,微软的rtsp协议有一些轻微的改动。我们网站上有本文档(还有后续版本)和一个简单的研究,它们可以帮助你了解这些信息。

区别在哪儿?

微软的rstp规范与标准rtsp协议相比最主要的改动是发送包payloads到客户端的方式,另外还有一些请求命令有一些改动。传输单个媒体包的机制并没有文档(就 我目前所知),这可能是微软要保留的信息。

就像MMS和HTTP 1.0 流协议使用一个媒体数据包头一样,RTSP也有。但是微软的数据包头格式没有在任何的rtsp文档中注明。在企图连接微软的rtsp服务器时,这是主要的问题。

微软RTSP协议的命令采用的语法和标准rtsp协议的命令语法一样,只有一些小的修改和添加,可以通过阅读网上的一些文档,就可以知道怎么去组成这些命令。微软rtsp命令部分已经有文档了。

一次典型的RTSP协议传输过程

这个例子为了简略,没有把发送接收的包放上来

To Server =>                                 NETWORK                         <= To Client

客户端连服务器的554端口

客户端发送“DESCRIBE”命令

服务器返回标准rtsp头

这个rtsp头和数据实体包含ASF文件头信息

以及所有的和媒体文件相关的流bit rate data

客户端发送“SETUP” 音频流媒体建立命令(stream 1)

服务器返回标准rtsp头

客户端发送“SETUP” 视频流媒体建立命令(stream 2)

服务器返回标准rtsp头

客户端发送“PLAY” 命令

服务器返回标准rtsp头

客户端发送 “SET_PARAMETER” 命令

这个命令还包含了一些客户端发送给服务器的信息,比如客户端的操作系统,CPU类型,播放器版本,日期时间等信息。 消息格式是tagged XML.

服务器返回标准rtsp头

#### 服务器即将开始一个流,发送媒体数据包(包含媒体数据包头),请看接下来的 ####

当要断开这个流的时候,服务器会向客户端发送一个EOF指示

服务器断开socket连接

一个典型的发给服务器的RTSP命令

DESCRIBE rtsp://wm.microsoft.com/ms/video/0001-hi.wmv RTSP/1.0

User-Agent: WMPlayer/9.0.0.2980 guid/3300AD50-2C39-46C0-AE0A-81D88F547805

Accept: appli

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rtspclient_rtsp是一种用于实现RTSP(Real-Time Streaming Protocol,实时流传输协议)客户端的软件工具。该工具主要被用于在Linux系统下进行RTSP流传输的操作。 RTSP是一种用于控制实时流媒体服务器上媒体流的协议,主要用于在网络上进行音频、视频等多媒体数据的传输和播放。rtspclient_rtsp客户端是一个在Linux系统中运行的RTSP客户端的软件工具,它可以通过与RTSP服务器的交互来实现对实时流媒体的控制和传输。 在Linux系统下使用rtspclient_rtsp客户端,我们可以实现以下功能: 1. 连接RTSP服务器:rtspclient_rtsp可以通过指定服务器的地址和端口,与RTSP服务器建立连接,从而获取服务器上的实时流媒体数据。 2. 控制媒体流传输:rtspclient_rtsp允许我们发送播放、暂停、停止、重放等控制指令,来控制服务器上的媒体流传输。例如,我们可以通过客户端发送播放指令来启动媒体流的传输。 3. 获取媒体流数据:rtspclient_rtsp可以接收由RTSP服务器传输过来的媒体流数据,并将其保存或通过特定的方式进行处理,以便在客户端上进行播放或其他操作。 总结起来,rtspclient_rtsp是一个在Linux系统下运行的RTSP客户端软件工具,通过与RTSP服务器的交互,实现对实时流媒体的控制和传输。它允许我们连接至服务器,控制传输,并获取媒体流数据。它在实时流媒体传输和播放方面具有重要的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值