rtsp进行多媒体通信

实时流协议RTSP是由RealNetworks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。

具体实现: 

 player = Manager.createPlayer(rtspUrl);
    player.addPlayerListener(this);
    player.realize();
    volumeControl = (VolumeControl) player
      .getControl("VolumeControl");
    volumeControl.setLevel(level);
    player.prefetch();
    player.start();

 

 

rtsp协议

使用 RTSP 协议

应用到: Windows Server 2008

您可以使用实时流协议 (RTSP) 以单播流形式传递内容。这是一种专门为控制实时数据(如音频和视频内容)的传递而创建的应用程序级协议。它通过面向更正的传输协议来实现。该协议支持播放机控件操作,如停止、暂停、后退和快进索引的 Windows Media 文件。您可以使用 RTSP 将内容传输到运行 Windows Media Player 9 系列或更高版本或者 Windows Media Services 9 系列或更高版本的计算机。RTSP 是同数据传递实时协议 (RTP) 一起将内容提供给客户端的控制协议。

RTSP 协议概述

如果连接 URL 使用 RTSP(例如,rtsp://server/publishing_point/file),则 RTSP 将自动协商内容的最佳传递机制。然后指示 RTP 协议使用 UDP(在不支持 UDP 的网络上使用基于 TCP 的协议)传递流内容。

如果需要强制服务器使用特定的协议,则可以标识要在公告文件中使用的协议。用户还可以在内容地址(例如,rtspu://server/publishing_point/file)中指定协议。为了方便协议滚动,建议 URL 使用通用 RTSP 协议。这样,播放机可以使用 RTSPU 或 RTSPT 协议连接到流。如果播放机无法使用任一 RTSP 协议成功连接到流,将尝试通过使用 HTTP 协议连接到流。

Windows Media Services 通过 WMS RTSP 服务器控制协议插件实现 RTSP。在 Windows Media Services 的默认安装中启用了此插件,并将其绑定到 TCP 端口 554

关于单播流

应用到: Windows Server 2008

单播流是服务器和客户端之间一对一的连接,这意味着每个客户端都会收到一个独特的流,并且只有请求该流的客户端才能收到它。您可以将内容作为单播流从请求发布点或广播发布点传递。

单播流是 Windows 媒体服务器传递内容的默认方法。单播流由 WMS 单播数据写入程序插件自动启用(默认情况下处于启用状态)。

下图显示了使用请求发布点将内容作为单播流传递的示例。

单播流

如图所示,在运行 Windows Media Services 的服务器(名为 Server1)上有一个名为 TV1 的请求发布点。此发布点确定要传输的内容所在的位置。可以将内容放在本地服务器上,也可以放在网络文件系统中。您可以从特定文件、播放列表文件或目录获取内容。在本例中,发布点来源于本地存储在 Server1 上的一个播放列表文件。准备让用户开始传输时,您可以创建一个公告,为用户提供指向内容的 URL。由于该内容作为单播流传递,因此每个播放机都有指向 Server1 的唯一连接。

客户端连接到服务器之后,可以通过 UDP 或 TCP 传递内容。这两个协议之间的差别是客户端确认收到数据包的方式。

如果使用 UDP 传递方法 RTSPU,则服务器没有必要在收到数据包已成功接收的验证之后再传输另一个数据包。该方法最适合传输。如果客户端没有收到数据包,则它可以请求服务器重新发送丢失的数据包。这称为 UDP 重发请求。当服务器收到 UDP 重发请求时,它会检查其缓冲区,查看是否仍然可以获得此数据。如果可以获得,则会将此数据重新发送给客户端。如果无法获得,则服务器无法实现该请求。客户端可以承受某些数据包损失,甚至可以在 UDP 重发请求不成功之后继续提供内容。

如果使用 TCP 传递方法(如 HTTP 或 RTSPT),则服务器必须等待客户端确认成功接收一个数据包之后才可以发送另一个数据包。如果该数据包丢失,则服务器必须先重新发送该数据包,然后才能继续传输数据。该方法最适合平台组件(如编码器、缓存/代理服务器和分发服务器)之间的连接,因为它保持最高质量的流。

默认情况下,Windows Media Services 根据内容确定传输的最佳数据包大小。如果要使用 RTSP 协议通过单播连接传输内容并且会遇到大量的数据包丢失或分裂,则您可能希望使用 WMS 单播数据写入程序管理单元的属性页,为您的服务器设置特定的单播数据包大小。确定服务器的正确数据包大小时,请考虑以下事项:

  • 如果数据包大小超过了将其转发给客户端的路由器的容量,则路由器会将该数据包分为碎片,然后将各个碎片发送给客户端。客户端收到所有数据包碎片后,会将它们重新组装成原始数据包。这可能会导致丢失大量数据包,因为丢失任何一个碎片都将导致丢失整个数据包。
  • 服务器发送的每个数据包都有一个用来传输标头信息(如控制协议、流格式及服务器地址)的额外带宽要求。发送大量小型数据包可能会导致使用的带宽大大增加。
  • 每次重新发送都要求带宽的数量和发送时间与原始数据包相同。
  • 不同的用户可能支持不同的数据包大小。请针对您的目标用户优化数据包大小。
  • 通过 RTSP 协议 (RTSPU) 使用 UDP 时,将 RTP 数据包大小设置为过小的值可能会阻止 Windows 媒体服务器进行传输。

单播流的优点是可以在播放机和服务器之间进行交互、更易于设置以及具有多比特率流功能。但是,能够接收单播流的用户数量受内容的比特率和服务器网络速度的限制。用户使用大型单播可能会使网络或服务器快速崩溃。在以下情况下,考虑使用单播流:

  • 希望利用多比特率编码和智能流。
  • 计划的用户数量和内容比特率与网络和服务器的容量一致。
  • 需要详细的客户端日志。
  • 您的网络不支持多播。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值