本文档提供了有关MicrosoftWindowsMediaServices9系列的常见问题的解答。要查看每个问题和答案的完整内容,请单击问题。要展开所有问题,请按Shift+A。要折叠所有问题,请按Shift+C。
WindowsMediaServices服务。WindowsMediaServices服务取代了构成WindowsMediaServices版本4.0和4.1的四个单独的服务:WindowsMediaMonitorService、WindowsMediaProgramService、WindowsMediaStationService和WindowsMediaUnicastService。
扩展了插件的使用。WindowsMediaServices9系列大大增加了通过扩展的插件结构对服务器进行自定义和配置的方法数。
扩展了发布点的使用。发布点对以前通过组合程序、流和电台提供的功能进行了简化和改进。
灵活的服务器端播放列表。每个发布点(包括点播发布点)都可以对播放列表中的内容进行流式处理。播放列表中的每个项目都有一组可进行指定以满足特定需求的独立属性。甚至在广播期间也可以修改播放列表,这样,您不必中断流即可对各种情况作出响应。
灵活的事件结构。在早期版本的WindowsMediaServices中,只有通过电台和单播MicrosoftActiveX对象,才能获得外部事件。在这个版本中,事件可通过服务器接口在内部获得,以及通过Windows管理规范(WMI)和简单网络管理协议(SNMP)事件在外部获得。
快速流式处理。在早期版本的WindowsMediaServices中,内容是以恒定的比特率流向客户端的。WindowsMediaServices9系列中的快速流式处理功能支持流式处理、下载和高速缓存的结合使用,以提供最佳的用户体验。
改进的数据包重发逻辑。在早期版本的WindowsMediaServices中,客户端发出的数据包重发请求只能应用于最后两秒钟的内容。在此版本中,服务器缓冲区中存储了10秒钟的数据,可保证更好的纠错能力和流质量。
重新封装基于服务器的内容。在早期版本的WindowsMediaServices中,服务器只能按流格式的定义对数据包进行流式处理。在此版本中,服务器管理员可以为其环境中的流式处理设置最佳数据包大小,并且服务器可以重新分配数据,以便基于该属性设置对数据包进行流式处理。只有当使用用户数据报协议(UDP)数据包和实时流协议(RTSP)对内容进行流式处理时,这种优化才适用。
IPv6支持。此版本的WindowsMediaServices支持Internet协议版本6(IPv6)寻址。
IGMPv3支持。对Internet组管理协议(IGMP)版本3的支持有助于避免多个广播服务器使用同一个多播IP地址时出现的问题。此功能要求连接到多播流的客户端运行WindowsMediaPlayer9系列。
另外,建议满足以下最低硬件配置要求:
处理器。550兆赫(MHz)
内存。1千兆字节(GB)RAM
网络接口卡(NIC)。以太网卡,传输控制协议/Internet协议(TCP/IP)
可用硬盘空间。521兆字节(MB)(6MB用于系统文件,15MB用于安装,500MB用于内容存储)
1.启动“配置服务器向导”(单击“开始”,指向“管理工具”,然后单击“配置服务器向导”)。
2.在“配置服务器向导”中的“服务器角色”页上,选择“流媒体服务器”服务器角色。
3.完成向导的操作。
“配置服务器向导”将安装WindowsMediaServices服务的下列必需子组件:
WindowsMediaServices。此服务允许您通过Intranet或Internet将数字媒体内容传输到客户端。
WindowsMediaServices管理单元。通过此管理单元,您可以使用Microsoft管理控制台(MMC)来管理和配置WindowsMediaServices。
在使用“配置服务器向导”时,不会安装以下可选的WindowsMediaServices服务子组件:
用于Web的WindowsMediaServices管理器。此子组件支持对WindowsMedia服务器进行基于浏览器的远程管理。
您必须执行以下步骤来安装这些可选组件:
1.打开“添加/删除Windows组件”(单击“开始”,指向“控制面板”,单击“添加或删除程序”,然后在“添加或删除程序”中,单击“添加/删除Windows组件”)。
2.在“Windows组件向导”的“组件”列表中,单击“WindowsMediaServices”,然后单击“详细信息”按钮。
3.在“WindowsMediaServices”对话框中的“WindowsMediaServices的子组件”列表中,选中要安装的可选WindowsMediaServices子组件的复选框。
4.完成向导的操作。
输入:端口80、554、1755上的TCP。WindowsMedia服务器使用TCP输入端口接受来自WindowsMediaPlayer及其他客户端的传入HTTP连接(端口80)、RTSP连接(端口554)或MMS连接(端口1755)。
输入:端口1755、5005上的UDP。WindowsMedia服务器使用UDP输入端口1755从使用MMSU进行流式处理的客户端接收重发请求,并使用UDP输入端口5005从使用RTSPU进行流式处理的客户端接收重发请求。
输出:端口1024-5000之间的UDP。WindowsMedia服务器使用UDP输出端口1024-5000将数据发送到WindowsMediaPlayer及其他客户端。
要使防火墙后面的分发服务器能够使用HTTP或RTSP协议从防火墙外的原始服务器对单播内容进行流式处理,请打开以下端口:
输入:端口1024-5000之间的UDP。WindowsMedia服务器使用UDP输入端口1024-5000接收来自另一个服务器的数据。
输出:端口80、554上的TCP。WindowsMedia服务器使用TCP输出端口来建立到另一个服务器或编码器的HTTP连接(端口80)或RTSP连接(端口554)。
输出:端口5005上的UDP。使用RTSPU分发时,WindowsMedia服务器使用UDP输出端口5005将重发请求发送到另一个服务器。
要使用多播流式处理来分发内容,请通过标准D类IP地址(224.0.0.0到239.255.255.255)定向网络通信。要进行多播,必须在您的网络上启用多播转发。
1.在WindowsMediaServices管理单元中,单击要对其更改分配给HTTP流式处理的端口的服务器。
2.在详细信息窗格中,单击“属性”选项卡。
3.在“类别”中,单击“控制协议”。
4.在“插件”中,单击“WMSHTTP服务器控制协议”,然后单击“属性”。
5.如果您的服务器上有多个可用的IP地址,请在“IP地址”中单击“允许所选IP地址使用该协议”,然后在列表中单击您要使用的特定IP地址。
6.在“端口选择”中单击“使用其他端口”,然后在提供的空间键入要使用的端口号。HTTP端口号的范围是1到65535。
7.在详细信息窗格中的“插件”中,单击“WMSHTTP服务器控制协议”。单击“启用”,使HTTP协议可用于从服务器对内容进行流式处理。
8.让网络管理员打开网络防火墙上相应的端口。
另外,您也可以在一个网络接口卡上创建多个IP地址,然后将单独的端口80地址分配给这些IP地址。之后,您必须执行以下操作,将WindowsMediaServices和IIS配置为绑定到不同的IP地址/端口80组合:
1.打开文件夹%systemroot%\System32\WindowsMedia\Server\Admin\MMC。
2.双击“WMSHttpSysCfg.exe”。
3.在“WindowsMediaServicesHTTPSys配置”对话框的“IP地址”中,键入您希望HTTP.sys驱动程序使用的IP地址,然后单击“添加”。
5.要验证IIS只绑定到新添加的IP地址,请在命令行提示符下键入“netstat”。
6.在WindowsMediaServices管理单元控制台树中,单击您要为其启用HTTP流式处理的服务器。
7.在详细信息窗格中,单击“属性”选项卡。
8.在“类别”中,单击“控制协议”。
9.在“插件”中,单击“WMSHTTP服务器控制协议”,然后单击“属性”。
10.在“IP地址”中,单击“允许所选IP地址使用该协议”,然后在列表中单击您要使用的特定IP地址。不要选择第3步中添加的地址。
11.单击“确定”应用更改。
12.在详细信息窗格中的“插件”中,单击“WMSHTTP服务器控制协议”。单击“启用”,使HTTP协议可用于从服务器对内容进行流式处理。
如果域控制器是新森林中的第一个域,则WindowsMediaServices帐户和设置将按预期方式迁移。
如果域控制器要在现有的森林中创建新的树,则所有本地用户帐户和设置将被删除,WindowsMediaServices将不能对内容进行流式处理。要解决此问题,请执行以下操作:
1.在服务器上安装MicrosoftActiveDirectory后,创建一个作为来宾组成员的新用户帐户。
2.在WindowsMedia服务器上,禁用WMS匿名身份验证插件。
3.配置WMS匿名身份验证插件的属性,以使用您在第1步中创建的新用户帐户。
4.启用WMS匿名身份验证插件。
5.停止WindowsMediaServices服务,然后再重新启动。
用于Web的WindowsMediaServices管理器是一个基于浏览器的界面,它使用以Internet信息服务(IIS)作为宿主的ActiveServerPages(ASP)。ASP页与FAT32文件结构不兼容。如果您在启动用于Web的WindowsMediaServices管理器时遇到问题,请确保您的文件系统未使用FAT32结构。
运行WindowsMediaServices9系列的服务器可以对MicrosoftWindowsMediaAudio(WMA)、WindowsMediaVideo(WMV)、高级系统格式(ASF)和动态图像专家组(MPEG)-1Layer3(MP3)格式的文件进行流式处理。但是,WindowsMediaServices不能使用智能流式处理功能对MP3格式的文件进行流式处理。
如果启用了相应的媒体分析程序插件,则可以使用WindowsMedia服务器对其他数字媒体文件格式的文件进行流式处理。媒体分析程序插件将文件中包含的信息转换成可由WindowsMedia服务器和WindowsMediaPlayer使用的格式。要确定媒体分析程序插件是否可用于您要进行流式处理的格式,请与数字媒体文件格式开发人员联系。
此外,如果.mp3文件内容太短,服务器可能也无法将该文件传输到WindowsMediaPlayer。为了确保在某些版本的WindowsMediaPlayer上可靠呈现,WindowsMediaServices进行流式处理的内容必须符合或超过播放机支持的最小内容长度。WindowsMediaPlayer9系列支持的最小内容长度是5秒。早期版本的WindowsMediaPlayer支持的最小内容长度是30秒。比最小长度更短的内容可能无法完整地呈现或根本不能呈现。
WindowsMediaPlayer版本。只有WindowsMediaPlayer9系列或使用WindowsMediaPlayer9系列ActiveX控件的播放机才支持对播放列表中的内容执行快进、跳进、后退和暂停的功能。早期版本的播放机不支持这些控件。
发布点类型。当内容从广播发布点进行流式传输时,快进、跳进、后退和暂停控件不可用。当内容从点播发布点进行流式传输时,根据内容源,这些控件可能可以使用。
内容源。当内容从编码器或远程发布点进行实时流式传输时,快进、跳进、后退和暂停控件不可用。
索引。如果内容没有进行索引,则快进、跳进、后退和暂停内容的功能不可用。内容可以在编码过程中索引或在内容已经编码后索引。
noSkip属性。当播放列表中的“noSkip”属性设置为True时,快进、跳进、后退和暂停内容的功能不可用。
WindowsMediaServices9系列不能连接到随Windows2000Server一起发行的那些WindowsMediaTechnologies之前的版本。此外,您不能使用WindowsMediaServices版本4.1从运行WindowsMediaServices9系列的服务器分发流。
以下日志文件条目通常是尝试确定客户端问题时最有帮助的:
c-status。这些是描述客户端连接状态的代码。某些常见的连接问题会出现在此字段中。
avgbandwidth。这是连接的平均带宽。如果此值低于来自服务器的流的比特率,则客户端的带宽可能降低了。
c-bytes。这是客户端接收的字节数。如果此数字不同于服务器发送的字节数(sc-bytes),则说明发生了数据包丢失。
c-pkts-lost-client。这是没有传递到客户端的数据包数。
c-buffercount。这是客户端缓冲流的次数。较高的值说明可能存在带宽问题。
您可以监视日志文件,以确定是否有任何数据包丢失、丢失的位置以及是否恢复了任何丢失的数据包。以下日志文件字段可能有助于确定是否发生了数据包丢失:
s-pkts-sent。这是服务器发送到连接客户端的内容数据包的数量。此字段在来自高速缓存/代理服务器的远程高速缓存客户端日志和多播日志文件中包含连字符(-)。
c-pkts-received。这是客户端第一次尝试时从服务器正确接收的数据包的数量。如果通过UDP协议重发第一次尝试时没有正确接收的数据包,则这些数据包可以恢复。未通过UDP重发来恢复的数据包被视为已在网络中丢失。
c-pkts-lost-client。这是没有在客户端层通过纠错或在网络层通过UDP重发恢复的丢失数据包的数量。这些数据包是WindowsMedia服务器发送的,但不可能被客户端播放。
c-pkts-lost-net。这是在网络层丢失的数据包的数量。如果启用了纠错功能,客户端也许能恢复这些数据包。
c-pkts-lost-cont-net。这是在网络层连续丢失的数据包的最大数量。较高的值说明在很长时期内网络通信状况不佳,在此期间,客户端没有收到任何数据包。
c-resendreqs。这是客户端对新数据包的请求的数量。此字段包含零,除非客户端使用UDP重发。
c-pkts-recovered-ECC。这是在网络层丢失的、但因为启用了纠错功能而在客户端层修复和恢复的数据包的数量。对于多播流,纠错是数据包恢复的唯一手段。在客户端层修复和恢复的数据包等于c-pkts-lost-net与c-pkts-lost-client之差。
c-pkts-recovered-resent。这是因为通过UDP重发而恢复的数据包的数量。该值不包括TCP或UDP数据包。此字段包含零,除非客户端使用UDP重发。
注意,所有日志字段的值均不包括TCP或UDP数据包。
当数据包在流式处理或存档过程中丢失后,WMS存档数据写入器插件会将一条警告消息发送到WindowsMediaServices中的“故障排除”选项卡,以报告丢失量。必须启用该插件才能发送警告。如果您的服务器接收的内容流因为数据包丢失而中断两秒钟以上,则WMS存档数据写入器插件将停止存档,并在恢复传入流时,开始存档到新的文件中。如果存在几个较小的存档文件,说明在广播期间发生了数据包丢失。
您可以通过配置WMSMMS服务器控制协议插件,将该端口更改为MMS协议所绑定的端口,以解决这一问题。或者,您也可以创建一个名为Wspcfg.ini的文件,将其保存在名为%systemroot%\Windows\System32\WindowsMedia\Server的文件夹中。该文件应该包含以下文本:
[WMServer]
LocalBindTcpPorts=1755
LocalBindUdpPorts=1755
当编码器将内容“推”向WindowsMediaServices时,编码器可控制WindowsMedia服务器和广播流。编码器还可以在服务器上创建一个新的发布点,将该发布点设置为广播完成后删除自身。为了使用编码器将广播推向WindowsMedia服务器,编码器管理员必须具有WindowsMedia服务器名、服务器的URL以及访问该服务器的所有必要权限。对于实时编码方案以及必须在内容源保持对广播的控制的情况下,编码器推传递非常有用。
当WindowsMediaServices从编码器“拉”内容时,服务器连接到已经在传输的编码器流。如果发布点被设置为在第一个客户端连接到内容后启动或者通过防火墙将WindowsMedia服务器与编码器分开,则编码器拉传递非常有用。在编码器拉配置中,编码器必须在WindowsMedia服务器可与其相接之前已经启动并对内容进行编码。服务器发布点必须使用编码器URL作为其内容源。
为了避免这些问题,并改进网络与客户端性能,您可以在服务器上创建一个额外的发布点,充当主发布点与编码器之间的中间方。这种设置会使性能得到改进,因为无论对内容进行流式处理的客户端数量是多少,服务器始终保持到编码器的单个连接。您可以执行以下操作来创建此发布点:
1.创建两个相同的广播发布点。
2.将第一个发布点配置为从编码器接收内容。
3.启动该发布点。
4.将第二个发布点配置为引用播放列表。将“media”元素添加到从第一个发布点接收内容的播放列表。
5.使用“lpp://publishing_point_1”作为“media”元素的源(其中,publishing_point_1是在第2步配置的发布点的名称)。
6.使用第二个发布点将内容传输到您的客户端。
有几种方法可以解决这个问题。您可以实施任何一种或所有这些解决方法,以减轻服务器或网络上的数据传输负载:
在服务器上设置限制。您可以将服务器配置为限制客户端连接的数量和使用的带宽量,这样就不会超出服务器和网络容量。
创建服务器群集。您可以使用服务器群集使一组WindowsMedia服务器进行协作,共同对内容进行流式处理。虽然客户端连接到使用一个URL的群集,但所有服务器均共享流式处理负载,以便减轻每个服务器上的负载。
添加分发服务器。您可以在网络中流式处理要求最高的点使用分发服务器,将流式处理负载分散到整个网络上。这样可以极大地改进流式处理的性能,因为服务器与客户端之间的距离缩短了。
实现高速缓存/代理系统。您可以对服务器启用另一家公司的高速缓存/代理插件,以提供高速缓存和代理支持。使用高速缓存/代理服务器是节省带宽、减少由网络引起的延迟以及分担原服务器上负载的一种简单方法。这可以最大限度地降低所需的网络带宽,因为只需要一个来自原服务器的连接即可将内容上载到高速缓存以及从高速缓存接收信息。网络延迟也缩短了,因为客户端可以从临近的高速缓存/代理服务器接收内容,比来回浏览网络或Internet、以便从原服务器接收内容更快速。此外,还可分担原服务器上的负载,因为直接连接到原服务器的客户端更少。
修改您的流媒体内容。您可以使用不同的设置对内容进行编码,以降低内容的带宽要求。
所需网络容量=内容比特率x用户量
从单CPU服务器升级到多CPU服务器。
安装额外的网络接口卡或将现有的网络接口卡升级为支持更高的带宽网络连接。
将运行WindowsMediaServices的其他服务器添加到您的流媒体系统中,并使用网络负载平衡来分配服务器负载。
使高速缓存/代理服务器分布在整个网络中,并实现内容复制程序,以便将距离较近的内容分发给客户端,从而减少对原服务器的部分需求。
将要处理流媒体请求和传输的网络交换机设置为全双工模式,以保持不中断的信息流。