流式媒体
流式媒体
随着Internet的发展,流式媒体(Streaming Media)越来越普及,流式媒体是通过网络传输的音频、视频或多媒体文件,流式媒体在播放前并不下载整个文件,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。当流式媒体文件传输到您的计算机时,在播放之前该文件的部分内容已存入内存。
目前比较流行的流式媒体技术是美国RealNetwork公司的RealPlay产品,许多Internet 的音乐台、视频点播站点采用该产品。微软公司近年来推出的Windows Media技术异军突起,以其方便性、先进性、集成性、低费用等特点,逐渐被人们所认识。
Windows Media的前身是微软公司的Netshow产品,随着流媒体的广泛应用,推出了整套的流媒体制作、发布和播放产品,其服务器端的Windows Media Server产品在Windows NT Ser ver Pack 4上可以安装,并且集成在即将正式推出的Windows 2000 Server中。Window s Media产品的一大特点是其制作、发布和播放软件与Windows NT/2000/9x集成在一起,不需要额外购买,势必成为今后流媒体应用的主流产品。
Windows Media可以用于娱乐、培训和在线教育等方面:
1.带图片的广播(Illustrated Audio):可以把PowerPoint讲座录制到CD或We b站点,用户通过IE,就可以看到一张张PPT在讲员讲解的同时会自动翻转。工作方式是:只要提供讲员的声音(磁带或电子格式均可)和PPT文件,Windows Media提供了Encoder(压缩)工具可以在声音中插入Mark er,然后在声音播放的过程中,这些Marker就会翻转PPT图片,使声音和PPT图片保持同步。
2.流视频播出(Streaming Video):用摄像机或投影仪获得视频信号后,就可以通过Web站点进行基于Internet的现场直播;或者保存为.nsf文件后,以按需播放。需要在一台较高配置的PC机上安装上普通视频采集卡和声卡,然后通过视频采集卡输入视频和通过声卡输入声音信号就可以用实时Encoder(压缩)工具来直播或录制成流媒体。
3.远程教学(Remote seminar):教学者事先在Internet/Intranet上发出通知,听众在讲座开始前访问某个URL地址,当讲座开始时,听众可以看到演讲者的图像和听到他的声音,还有PPT图片。在演讲者翻转PPT的时候,用户端的PPT图片也自动翻转了。整个讲座也可以记录下来,以后按需播放。需要教学者事先用 Multicast把PowerPoint文件传给IIS服务器,当听众等待讲座开始的时候,PPT图片下载到用户的浏览器Cache中。用摄像机录制演讲者的图像和声音,通过实时Encoder直播出来。直播中包含了PPT翻转的命令,可以使听众的浏览器同步地翻转PPT图片。
4.提供收费电视(Pay by view):当用户需要看内容供应商直播或按需点播的内容时,如果他没有许可证,则Windows Media Player会带他到内容供应商的网站,来(付费)申请许可。Windows Media 4.0中提供的Digital Rights Management功能可以加密内容供应商的内容,确保收费后信息才会播发。
另外,如果你是音乐发烧友,Windows Media 4.0还提供了MS Audio Codec压缩技术,可以为普通拨号上网的用户提供调频收音的效果。如果把内容做成WMA (Windows Media Audio ) 的格式,压缩效率比MP3提高一倍,用户可以下载之后在WinCE中播放。IE 5中已经实施了Internet 收音机,也是采用MS Audio。
Windows Media技术
Microsoft Windows Media Service是一个能适应多种网络带宽条件的流式多媒体信息的发布平台,包括了流式媒体的制作、发布、播放和管理的一整套解决方案。另外,还提供了开发工具包(SDK)供二次开发使用。
Windows Media Service的核心是ASF(Advanced Stream Format )。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。其中,在网络上传输的内容就称为ASF Stream。ASF支持任意的压缩/解压缩编码方式,并可以使用任何一种底层网络传输协议,具有很大的灵活性。
WindowsMediaService 系统包括三大部分:制作、发布和播放。如下图:
1.Windows Media工具计算机
Windows Media工具计算机用于ASF Stream的制作与生成。它包括了一系列的工具,有Wi ndowsMedia Author(从分立的图像、声音文件组合制作ASF文件),VidToASF,WaveTo ASF(格式转换工具),Media Presenter For PowerPoint 97(是一个PowerP oint的插件,使PowerPoint的演示能通过ASF Stream技术进行发布),Media Encode r(实时音频、视频采集,生成实时的ASF流)。这些工具产生的ASF Stream可以存储为.asf文件,供发布服务器使用,而Media Encoder可以实时向发布服务器提供ASF流,提供实时的多媒体信息发布服务。
2.Windows Media服务器
Windows Media服务器对外提供ASF流式媒体的网络发布服务,包括两大基本服务模块:Unica stService和Station Service。其中Unicast为客户提供了点对点连接方式的服务,Sta tion对外提供了广播式服务。而Unicast服务又可以按用户的参与程度分为两种,一是On-Demand Un icast,这种方式下,用户建立和发布服务器的点对点连接,可以控制播放的过程,包括开始、暂停、快进等。另一种是 Broadcast Unicast,这种方式下,用户也和发布服务器建立点对点连接,但是处于一种被动接收状态,只能观看播放,正如在广播服务方式下一样,这一般用于实时的信息发布。
3.Windows Media客户机
Windows Media客户机可以独立使用,也可以方便的以ActiveX Control的形式嵌入到浏览器或其它应用程序中。它既可以播放Unicast Service提供的内容,也可以播放Station Ser vice提供的广播内容。另外,它还支持多种常见的多媒体文件格式,如AVI,QuickTime,MPEG等。
Windows Media系统还提供了一套主页形式的管理工具,可以方便的对服务器进行远程管理,完成服务器配置,监控运行时的各种事件,流量,控制客户访问的日志记录等。
2.1 工作方式
Windows Media Service系统能用于多种网络环境,基本的应用方式有如下几种:
1. On-Demand Unicast(点播服务)
点播服务工作方式
描述点播服务工作方式,这种应用方式适合多媒体信息的点播服务。因为ASF技术支持任意的压缩/解压缩编码,可以使用任何一种底层网络传输协议,使它既能在高速的局域网内使用,也可以在拨号方式连接的低带宽Interne t环境下使用,并且对具体的网络环境进行优化。点播服务方式下,用户相互之间互不干扰,可以对点播内容的播放进行控制,最为灵活,但是占用服务器、网络资源多。
2.Broadcast Unicast/Multicast(单点或多点广播服务)
单点或多点广播服务工作方式
描述了单点或多点广播服务工作方式,广播服务下,用户只观看播放的内容,不进行控制。可以使用ASF文件作为媒体内容的来源,但实时的多媒体内容最适合使用广播服务方式。通过视频捕捉卡把摄像机、麦克风记录的内容输入到 Media Encoder,进行编码生成ASF流,然后送到MediaServer上发布。在支持广播的网络中,可以使用Station Service节约网络带宽,减轻服务器负载,在不支持广播的网络中,可以使用Broadca st Unicast Service,用Unicast的方式实现广播。
3.Distribution(服务器扩展)
服务器扩展工作方式
描述了服务器扩展工作方式,通过Distribution方式可以把一个Media Server输出的 ASF流输出到另外一个Media Server ,再向用户提供服务。一种应用是,可以通过Distributio n进行发布服务器的扩展,为更多的用户服务。另一种应用,可以通过Distribution使Media Serve r跨越非广播的网络,提供广播服务。另外,Windows Media Service还支持HTTP Stream 方式,使用通用的HTTP协议,可以更好的工作在Internet上,如跨越防火墙进行媒体内容的传输。
Windows Media系统设计
根据需求和应用,采用Windows Media技术方便地进行设计,下面采用Windows 2000来设计一套远程教育的环境,其网络结构如图4。
远程教育网络结构
1.远程教育中心
远程教育中心由工具计算机、Windows2000 Media服务器、教师机组成。工具计算机安装视频采集卡、声卡及摄像机,用于制作流媒体文件;Windows2000 Media服务器用于存储和发布流媒体信息;教师机可以放于远程教育中心或者网络的其它地方,安装视频采集卡、声卡及摄像机。
2.学生机
学生机采用Windows 9x或Windows 2000 Professional系统,需要IE浏览器、Office 97/2000、Windows Media Player软件。
3.网络连接
目前远程教育网络连接方式有多种:
(1)校园网
校园网速度较快,选择支持多点广播路由协议的路由器,如没有可采用单点广播。
(2)Internet
Internet速度较慢,而且不支持多点广播协议,功能受限制,但是也可进行播放。 (3)专用数据线路
通过专用数据线路连接,其速度较快,尽量选择支持多点广播路由协议的路由器。
(4)电话拨号
电话拨号速度较慢。
4.计算机运行环境
(1)Windows Media Encoder编码计算机,需要:Windows 98/Audio C ard/VideoCaptureCard/Mic Phone/Video Camer。
(2)Windows Media 服务器计算机,在Windows NT4/SP4或Windows 20 00 安装Windows MediaServices。
(3)Windows Media 客户计算机,需要Windows Media Player 6.4软件。
结论 Windows Media技术的应用前景非常广泛,并可以在此基础上开发新的应用方式。虽然Windows Media最低支持20KB/S的传输速度,对Internet用户来讲,往往达不到要求,目前可行的应用环境是In tranet(如校园网、企业网等),随着Internet速度提高必将获得更普遍的应用。
Windows Media Player--ASF流播放器
Windows Media Player是Microsoft公司提出的流播放方案 Media Service 的重要组成部分,是一个通用的媒体播放器。在Media Service解决方案中,Media Player是作为客户端流播放应用程序来使用的。事实上,Media Player既可以象一个普通的应用程序一样单独使用,播放本地或网络上的流信息;也可以由HTML文本中的超级连接来启动以播放流信息;它还可以作为一个ActiveX对象在Web页面中使用。Media Player作为一个通用的媒体播放器除了播放ASF格式的流信息之外,它还可以播放多种格式的媒体信息,包括:声音文件(.wav, .snd, .aif, .au, .mp3),MIDI文件(.mid, .rim, .midi),图象文件(.mov, .avi, .qt. .wmv, .mpg, .mpeg, m1v), 播放列表文件(.asx, .wax, .m3u)等。目前Media Player已经集成在Microsoft的IE5.0中,如果要在Netscape 或低版本的IE中使用Media Player则需要安装,用户可以在Microsoft的www.windowsmedia.com上去免费下载。Media Player的工作界面如图1 所示。下面我们将对Media Player的使用做详细的介绍。首先我们要简单地介绍如何将Media Player作为一个独立的应用程序来使用,以及如何在HTML建立hyperlink以启动Media Player。然后着重介绍如何在Web页中将Media Player作为一个ActiveX对象来使用,并用JavaScript对其工作过程进行控制。
Media Player的工作界面
1 将Media Player作为独立使用的应用程序
将Media Player做为一个独立的应用程序的使用比较简单,只要在File菜单中选择Open,然后输入或选择要播放的文件就可以对该文件进行播放。如图2所示。如果要播放Media Server上广播的节目,可以在Open对话框中输入mms://IP_address/station_name 即可以直接播放Server上播放的节目。其中IP_address是Media Server的地址,而station_name是节目的站名。
用Media Player直接播放ASF文件
2 利用ASX文件在HTML启动Media Player
打开Media Player的另一种方式是用HTML中超级连接,这需要用一个ASX文件来辅助完成该工作。ASX(Advanced Stream Redirector)文件是一个文本文件,它主要的目的对流信息重定向。在ASX文件中包含了媒体内容对应的的URL(Uniform Resource Locator),当我们在HTML中让一个hyperlink 与ASX联系时,浏览器会直接将ASX的内容送给Media Player,Media Player会根据ASX文件的信息用相应的协议去打开指定位置上的多媒体信息流或多媒体文件。
利用ASX文件来重定向流信息的主要原因是:目前通用的浏览器通常均不能直接支持用于播放流信息的协议,如Microsoft 的Media Server protocol (MMS) or Microsoft? NetShow? Theater Server protocol。它们通常支持的协议是HTTP,FTP等协议。因此如果我们在HTML 文件中链接是http://www.microsoft.com,目前所有的浏览器均能用HTTP协议与一个WWW服务器建立连接。相反,如果我们需要一个Media Server建立连接以播放流信息,就必须用MMS协议,如mms://202.112.107.59/station1,但由于目前通用的浏览器通常均不能直接支持MMS协议,所以浏览器不能与Media Server建立连接。为了解决这个问题,必须采用ASX文件。采用ASX文件后,当浏览器发现一个连接与ASX有关时,它知道需要用Media Player来播放流信息,于是它会自动启动Media Player,并将ASX文件的信息送给Media Player,Media Player就可以用如MMS之类的协议来播放流信息了。 ASX文件是单纯的文本文件,我们可以用任何文本编辑器来编辑生成,但扩展名必须是.asx。下面给出了一个ASX文件的例子。
<asx version = "3.0">
<title>demo</title>
<entry>
<ref href = "mms://202.112.107.59/demo/demo.asf"/>
</entry>
</asx>
第一行是版本号,第二行是标题,在<entry></entry>之间的部分说明Media Player应用MMS协议去播放网络计算 202.112.107.59上demo路径下的demo.asf文件。
ASX文件可以有自己的TITLE,AUTHOR,COPYRIGHT之类的信息,它的<entry></entry>可以有多个,表示有多个流要播放,这被成为播放列表,每个<entry></entry>之间还有属于每个流的相关信息包括TITLE,AUTHOR,COPYRIGHT等。下面的例子中就有两个节目要播放,它们各自还有自己的信息。
<ASX VERSION="3.0">
<TITLE>Example Media Player Show</TITLE>
<AUTHOR>Windows Media Technologies</AUTHOR>
<COPYRIGHT>(c) 1999, Microsoft Corporation</COPYRIGHT>
<ENTRY>
<TITLE>Example Clip</TITLE>
<AUTHOR>Windows Media Technologies</AUTHOR>
<COPYRIGHT>(c) 1999, Microsoft Corporation</COPYRIGHT>
<REF HREF="mms://samples.microsoft.com/media.asf" />
</ENTRY>
<ENTRY>
<TITLE>Another Clip</TITLE>
<AUTHOR>Windows Media Technologies</AUTHOR>
<COPYRIGHT>(c) 1999, Microsoft Corporation</COPYRIGHT>
<REF HREF="mms://samples.microsoft.com/more_media.asf" />
</ENTRY>
</ASX>
在HTML使用ASX文件的方法非常简单,与建立一个普通的HyperLink的方法相同。下面是一个简单的HTML文件testasx.htm,它给出了与ASX文件的链接。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test ASX File</title>
</head>
<body>
<p><a href="http://202.112.107.59/broadcast/station.asx">Test ASX</a></p>
</body>
</html>
除了用户自己创建ASX文件之外,更简单的办法是由Media Server来自动创建。当我们希望用Media Server来播放流信息时,我们必然要对播出的节目流进行设置,比如指定流文件名,指定播放协议等。在设置完成时Media Server会根据用户的设置自动建立一个ASX文件,利用该ASX文件Media Player 就可以播放Media Server播放的节目流。我们可以直接利用这个ASX文件与HTML建立链接,而不需要用户自己去书写ASX文件。
3 在Web页中使用Media Player
虽然上面两种方法均能完成流信息的播放,但不足之处是播放是在独立的窗口中进行的。比如在HTML通过与ASX文件的链接可以打开并播放流信息,但流信息的播放是在另一个窗口即播放器窗口中进行的,播放的控制也需要在播放器窗口中来完成。幸运的是Media Player是一个标准的ActiveX控件,我们可以将它作为一个对象直接嵌入到HTML页中去,这样就可以在Web页中直接用Player对象来播放流节目。图3是一个将Player嵌入Web页的例子。
图 3 将Media Player嵌入到Web 页中
在Web页中嵌入Media Player的方法比较简单,只要用HTML中的<Object></Object>可以了,如下所示。
<OBJECT ID="WMPlay" WIDTH=320 HEIGHT=240
CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"
CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/
nsmp2inf.cab#Version=6,4,5,715"
STANDBY="Loading Microsoft? Windows Media? Player components..."
TYPE="application/x-oleobject">
</OBJECT>
其中ID是对象的名称,当用户在JavaScript要对Media Player进行控制时可以用该对象的名称WMPlay进行访问。CODEBASE指明当用户的浏览器中没有安装Player控件时可以从该URL指定的位置去获取。
当然在建立Player对象时也可以用<PARAM >来为其指定参数。如下所示:
<PARAM NAME="FileName" VALUE="C:ASFRootWelcome.asf">
<PARAM NAME="ShowControls" VALUE="False">
<PARAM NAME="AutoRewind" VALUE="True">
<PARAM NAME="AutoStart" VALUE="False">
其中"FileName"参数表示Media Player要播放的文件活或流。"ShowControls"表示在播放时是否显示控制条。Media Player的参数很多,我们在此不再一一详述。读者如果需要了解更详细的内容可以参考Media Player SDK中的相关部分。
如果用户需要对Media Player进行控制可以用JavaScript进行控制。图4给出了用JavaScript对Media Player进行控制的例子。
图4 用JavaScript控制Media Player的例子
在这个例子中,Media Player嵌入在Web页面中,在Media Player右边有一些按钮,利用这些按钮用户可以控制Media Player的播放活动。这些按钮的HTML代码如下:
<form name="myform">
<input type="button" width="15" value="No Controls " name="NoControls"
OnClick="controlType(false)">
<input type="button" width="15" value="All Controls" name="Full"
Onclick="controlType(true)">
<input type="button" width="15" value=" Small " name="Small"
OnClick="displaySize(1)">
<input type="button" value=" Large " name="Large"
Onclick="displaySize(2)">
<input type="button" width="15" value=" Normal " name="Normal"
Onclick="displaySize(0)">
<input type="button" width="15" value=" Play " name="Play"
Onclick="PlayClick()">
<input type="button" width="15" value=" Stop " name="Stop"
Onclick="StopClick()">
</form>
相应的JavaScript代码为:
<script language="javascript">
<!--
var g_Browser = navigator.appName;
function controlType (setting)
{
if (g_Browser == "Netscape"
document.WMPlay.SetShowControls(setting);
else
document.WMPlay.ShowControls = setting;
}
function displaySize (setting)
{
if (g_Browser == "Netscape"
document.WMPlay.SetDisplaySize(setting);
else
document.WMPlay.DisplaySize = setting;
}
function PlayClick ()
{
document.WMPlay.Play();
}
function StopClick ()
{
document.WMPlay.Stop();
if (g_Browser == "Netscape"
document.WMPlay.SetCurrentPosition(0);
else
document.WMPlay.CurrentPosition = 0;
}
function PauseClick ()
{
document.WMPlay.Pause();
}
function PlayPauseClick ()
{
var state;
if (g_Browser == "Netscape"
state = document.WMPlay.GetPlayState();
else
state = document.WMPlay.PlayState;
if (state == 0)
document.WMPlay.Play();
else if (state == 1)
document.WMPlay.Play();
else if (state == 2)
document.WMPlay.Pause();
}
//-->
</script>
从这个例子可以看出当用户单即其中的某个按钮时,它对应的OnClick函数将被调用。在JavaScript函数中,可以直接用WMPlay来控制播放器的活动,比如开始播放,停止播放或占停播放,以及放大缩小等。
除了可以用动作比如鼠标的动作来对嵌入的Media Player进行控制外,还可以利用事件来对其进行控制。Microsoft? Windows Media? Player 支持的事件很多,有普通的鼠标事件,比如鼠标的单击、双击、鼠标的移动、鼠标键的按下与松开等,也有一些是Media Player特有的事件。与流播放有直接关系的事件有:OpenStateChange,PlayStateChange,Buffering,MarkerHit,ScriptCommand等。下面我们对这几个重要的事件做简单地介绍。
1 OpenStateChange 事件
OpenStateChange 事件表示Player的状态已经发生了改变。Media Player的打开状态有:
0 表示流已经关闭(nsClosed)
1 表示正在装入ASX文件(nsLoadingASX)
2 表示正在装入NSC文件(nsLoadingNSC)
3 表示正在寻找Media Server (nsLocating)
4 表示正在与Media Server建立连接(nsConnecting)
5 表示正在打开或侦听流信息(nsOpening)
6 表示流信息已经打开(nsOpen)
用JavaScript处理OpenStateChange事件的格式如下:
<SCRIPT FOR="MediaPlayer" EVENT="OpenStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中MediaPlayer是在<OBJECT></OBJECT>中定义的Media Player对象时的名字。
2 PlayStateChange 事件
PlayStateChange 事件表示Media Player的播放状态已经改变,Media Player可能的状态有:
0 播放已经停止(mpStopped)
1 播放暂停(mpPaused )
2 正在播放(mpPlaying)
3 正在等待流开始(mpWaiting)
4 向前搜索(mpScanForward)
5 向后搜索(mpScanReverse)
6 向前跳跃(mpSkipForward)
7 向后跳跃(mpSkipReverse)
8 流已经关闭(mpClosed)
用JavaScript处理该事件的方法为:
<SCRIPT FOR="MediaPlayer" EVENT="PlayStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
3 Buffering 事件
Buffering事件表示Media Player正在缓冲数据准备播放。在进行流播放之前,Media Player必须要缓冲一定数量的数据之后才开始播放,Buffering事件反映了Player缓冲数据的状况。用JavaScript处理Buffering事件的方法为:
<SCRIPT FOR="MediaPlayer" EVENT="Buffering(bStart)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中bStart为一个布尔变量,当它为TRUE时表示缓冲正在进行,反之表示缓冲已经结束。
4 ScriptCommand 事件
ScriptCommand事件表示Media Player接收到了Script 命令,这时用户可以利用对接收到Script命令进行分析以决定采取相应的处理。我们知道利用Media Tools的ASF Indexer工具可以给流添加Script命令,当流播放器Player接收到这些Script 命令时会激活这个事件处理方法,于是用户可以在事件处理方法中对Script命令进行处理。处理ScriptCommand的方法是:
<SCRIPT FOR="MediaPlayer" EVENT="ScriptCommand(sType, sParam)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中sType是Script命令的类型,Script命令的类型有URL,TEXT,EVENT等,用户可以根据Script命令类型的不同做不同的处理。比如,如果是URL命令,我们可以在指定的帧内打开sParam中指定的页面。
5 MarkHit 事件
MarkerHit事件同ScritpCommand事件一样,当媒体播放器在ASF流中遇到标记时会激活该事件,用户利用该事件可以知道当前的标记是第几个标记。MarkerHit事件的处理方法是:
<SCRIPT FOR="MediaPlayer" EVENT="MarkerHit(lMarkerNum)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
当然,除了支持事件处理之外,做为一个ActiveX对象,Media Player还有很多的属性(Property)和方法(Method)可以供Web页使用。比如用MediaPlayer.MarkerCount 属性可以知道在ASF流中到底有多少个标记;利用MediaPlayer. CurrentPosition属性可以知道当前播放位置的时间等等。至于Media Player对象的方法我们在前面已经使用了很多,比如Play(), Pause()等均是Media Player的方法。由于Media Player对象的属性和方法太多,我们不可能在此一一介绍,而只是对几个较为重要的事件处理做了一定的介绍。用户在使用时可以参考Media Player SDK的帮助文档以获取更多的信息。
本文对Media Service的客户应用程序Media Player的使用,特别是在Web页中的使用做了简单的介绍。作为一个通用的媒体播放器,它还有很多的功能这里没有介绍,要了解一个软件的功能,最好的方法就是使用它。用户如果感兴趣可以从www.windowsmedia.com上去免费下载
概述
本文介绍了Windows Media技术的特点、功能及组成,说明如何采用Windows Media进行应用设计(例如设计远程教育)。流媒体的应用是近几年来Internet发展的产物,广泛应用于远程教育、网络电台、视频点播、收费播放等,微软公司的Windows Media技术已经捆绑在Windows 2000中,将对Internet的应用和发展产生重要影响,Internt/Intranet将不再是单纯的文本和图像,声音和视频将成为今后网络普及的重点。
随着Internet的发展,流式媒体(Streaming Media)越来越普及,流式媒体是通过网络传输的音频、视频或多媒体文件,流式媒体在播放前并不下载整个文件,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。当流式媒体文件传输到您的计算机时,在播放之前该文件的部分内容已存入内存。
目前比较流行的流式媒体技术是美国RealNetwork公司的RealPlay产品,许多Internet的音乐台、视频点播站点采用该产品。微软公司近年来推出的Windows Media技术异军突起,以其方便性、先进性、集成性、低费用等特点,逐渐被人们所认识。
Windows Media的前身是微软公司的Netshow产品,随着流媒体的广泛应用,推出了整套的流媒体制作、发布和播放产品,其服务器端的Windows Media Server产品在Windows NT Server Pack 4上可以安装,并且集成在即将正式推出的Windows 2000 Server中。Windows Media产品的一大特点是其制作、发布和播放软件与Windows NT/2000/9x集成在一起,不需要额外购买,势必成为今后流媒体应用的主流产品。
Windows Media可以用于娱乐、培训和在线教育等方面:
(1)带图片的广播(Illustrated Audio):可以把PowerPoint讲座录制到CD或Web站点,用户通过IE,就可以看到一张张PPT在讲员讲解的同时会自动翻转。工作方式是:只要提供讲员的声音(磁带或电子格式均可)和PPT文件,Windows Media提供了Encoder(压缩)工具可以在声音中插入Marker,然后在声音播放的过程中,这些Marker就会翻转PPT图片,使声音和PPT图片保持同步。
(2)流视频播出(Streaming Video) :用摄像机或投影仪获得视频信号后,就可以通过Web站点进行基于Internet的现场直播;或者保存为.nsf文件后,以按需播放。需要在一台较高配置的PC机上安装上普通视频采集卡和声卡,然后通过视频采集卡输入视频和通过声卡输入声音信号就可以用实时Encoder(压缩)工具来直播或录制成流媒体。
(3)远程教学(Remote seminar):教学者事先在Internet/Intranet上发出通知,听众在讲座开始前访问某个URL地址,当讲座开始时,听众可以看到演讲者的图像和听到他的声音,还有PPT图片。在演讲者翻转PPT的时候,用户端的PPT图片也自动翻转了。整个讲座也可以记录下来,以后按需播放。需要教学者事先用Multicast把PowerPoint文件传给IIS服务器,当听众等待讲座开始的时候,PPT图片下载到用户的浏览器Cache中。用摄像机录制演讲者的图像和声音,通过实时Encoder直播出来。直播中包含了PPT翻转的命令,可以使听众的浏览器同步地翻转PPT图片。
(4)提供收费电视(Pay by view):当用户需要看内容供应商直播或按需点播的内容时,如果他没有许可证,则Windows Media Player会带他到内容供应商的网站,来(付费)申请许可。Windows Media 4.0中提供的Digital Rights Management功能可以加密内容供应商的内容,确保收费后信息才会播发。
Windows Media 4.0还提供了MS Audio Codec压缩技术,可以为普通拨号上网的用户提供调频收音的效果。如果把内容做成WMA (Windows Media Audio) 的格式,压缩效率比MP3提高一倍,用户可以下载之后在WinCE中播放。IE 5中已经实施了Internet收音机,也是采用MS Audio。
2 Windows Media技术
Microsoft Windows Media Service是一个能适应多种网络带宽条件的流式多媒体信息的发布平台,包括了流式媒体的制作、发布、播放和管理的一整套解决方案。另外,还提供了开发工具包(SDK)供二次开发使用。Windows Media Service的核心是ASF(Advanced Stream Format)。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。其中,在网络上传输的内容就称为ASF Stream。ASF支持任意的压缩/解压缩编码方式,并可以使用任何一种底层网络传输协议,具有很大的灵活性。
WindowsMediaService 系统包括三大部分:制作、发布和播放,如图1所示。
Windows Media 应用系统结构
1.Windows Media服务器
Windows Media服务器对外提供ASF流式媒体的网络发布服务,包括两大基本服务模块:Unicast Service和Station Service。其中Unicast为客户提供了点对点连接方式的服务,Station对外提供了广播式服务。而Unicast服务又可以按用户的参与程度分为两种,一是On-Demand Unicast,这种方式下,用户建立和发布服务器的点对点连接,可以控制播放的过程,包括开始、暂停、快进等。另一种是Broadcast Unicast,这种方式下,用户也和发布服务器建立点对点连接,但是处于一种被动接收状态,只能观看播放,正如在广播服务方式下一样,这一般用于实时的信息发布。
Windows Media系统还提供了一套主页形式的管理工具(如图2),可以方便的对服务器进行远程管理,完成服务器配置,监控运行时的各种事件,流量,控制客户访问的日志记录等。
Windows Media管理器
2.Windows Media工具计算机
Windows Media工具计算机用于ASF Stream的制作与生成。它包括了一系列的工具,有Windows Media Author(从分立的图像、声音文件组合制作ASF文件),VidToASF,WaveToASF(格式转换工具),Media Presenter For PowerPoint 97(是一个PowerPoint的插件,使PowerPoint的演示能通过ASF Stream技术进行发布),Media Encoder(实时音频、视频采集,生成实时的ASF流,如图3)。这些工具产生的ASF Stream可以存储为.asf文件,供发布服务器使用,而Media Encoder可以实时向发布服务器提供ASF流,提供实时的多媒体信息发布服务。
Windows Media 编码器
3.Windows Media客户机
Windows Media客户机可以独立使用,也可以方便的以ActiveX Control的形式嵌入到浏览器或其它应用程序中。它既可以播放Unicast Service提供的内容,也可以播放Station Service提供的广播内容。另外,它还支持多种常见的多媒体文件格式,如AVI,QuickTime,MPEG等。
Windows Media Player
在Windows NT ServerPack 4平台上也可以安装Windows Media服务,而且服务器软件、工具软件是免费的,用户可以www.microsoft.com/windowsmeida下载。在Windows 2000中捆绑了Windows Media软件,不过在Windows 2000 b3中没有该软件,在Windows 2000 RC2以后的版本中可以看到该软件,其客户端的播放软件在Windows 98、Windows 2000 Professional 中自带,就是开始菜单"娱乐"下的"Windows media player"(如图4)。
2.1 工作方式
Windows Media Service系统能用于多种网络环境,基本的应用方式有如下几种:
1. On-Demand Unicast(点播服务)
这种应用方式适合多媒体信息的点播服务。因为ASF技术支持任意的压缩/解压缩编码,可以使用任何一种底层网络传输协议,使它既能在高速的局域网内使用,也可以在拨号方式连接的低带宽Internet环境下使用,并且对具体的网络环境进行优化。点播服务方式下,用户相互之间互不干扰,可以对点播内容的播放进行控制,最为灵活,但是占用服务器、网络资源多。
2.Broadcast Unicast/Multicast(单点或多点广播服务)
广播服务下,用户只观看播放的内容,不进行控制。可以使用ASF文件作为媒体内容的来源,但实时的多媒体内容最适合使用广播服务方式。通过视频捕捉卡把摄像机、麦克风记录的内容输入到Media Encoder,进行编码生成ASF流,然后送到Media Server上发布。在支持广播的网络中,可以使用Station Service节约网络带宽,减轻服务器负载,在不支持广播的网络中,可以使用Broadcast Unicast Service,用Unicast的方式实现广播。
3.Distribution(服务器扩展)
通过Distribution方式可以把一个Media Server输出的ASF流输出到另外一个Media Server ,再向用户提供服务。一种应用是,可以通过Distribution进行发布服务器的扩展,为更多的用户服务。另一种应用,可以通过Distribution使Media Server跨越非广播的网络,提供广播服务。另外,Windows Media Service还支持HTTP Stream方式,使用通用的HTTP协议,可以更好的工作在Internet上,如跨越防火墙进行媒体内容的传输。
3 一个Windows Media系统的软硬件要求
1.服务器
根据情况可设一台或多台服务器,服务器硬件配置一般是PIII400以上CPU,内存在128~512M左右。软件安装Windows 2000 Server和Windows Media服务。如果点播内容较多,可以将ASF文件放在一个服务器上。如果是一个广域网(或者用户较多),可在每个局域网设立一个服务器,由中心服务器输出ASF流,先输出到另外一个Media Server ,再向用户提供服务。
2. 制作计算机
制作计算机硬件配置一般是PIII400以上CPU,内存在218~512M,需要声卡(几百元左右),视频采集卡(一千元左右),以及VCD或录像机。软件为Windows 98或Windows 2000 Professional,安装Windows media编辑工具。
3. 客户计算机
客户计算机是一般的Windows 95/98/2000的计算机,配声卡,需要Windows Media Player软件。
4. 网络设备
网络要求带宽在20K(拨号)到2M,一般的局域网即可,如果需要多址广播方式,则路由器必须支持多址广播协议
作者: 赵航