摘 要:Windows Media 流媒体由于交互性强、使用方便和效率高,近来在网络课程中的应用逐渐增多。本文讨论了Windows Media 流媒体在网络课程中应用的优势及其在设计、制作、发布、应用等各环节的相关理论和技术细节。
关键词:Windows Media;流媒体;ASF
在网络教育中采用流媒体是十分重要的技术手段。由于Microsoft公司凭借在操作系统上的特殊优势,将其流媒体技术Windows Media迅速推广普及。由于Windows Media在技术性能、易用性、效率和交互性等方面具有突出的优势,因而在当前的网络教育中普遍使用了这一技术。然而,在目前有些采用Windows Media技术的网络课程(课件)中经常出现流媒体播放不稳定的现象,因此结合实例详细讨论Windows Media流媒体技术的要点和正确应用方法就显得非常必要。
一、 Windows Media流媒体技术
当数据及其相关的所有属性从网络服务器上接收到时就立即被播放出来,而不是需要下载完毕后再播放,以这种方式传输的网络数据称为“流”。[1] Windows Media是Microsoft公司推出的流媒体技术,其中包括了流媒体的制作、发布、播放和管理的整体解决方案,它的核心流媒体数据格式是ASF(Advanced Stream Format),视频、音频、图像、控制命令脚本和时间点等信息通过这种格式以网络数据包形式传输,实现流媒体的发布。最新的Windows Media流媒体文件扩展名是WMV和WMA,这两者主要是为了区别视频和音频,其结构与ASF没有本质区别。
Windows Media服务是运行于服务器端的流媒体控制平台,它使用户能够通过各类网络传输流媒体内容,它为ASF流媒体提供了两种发布方式:Unicast Service(单播)和Station Service(多播、广播站),它们分别用于交互式点播和广播方式。交互式点播方式允许用户通过交互参与流媒体播放的控制;而广播方式下用户只能观看播放,不能进行控制,适用于对教室现场的广播。[2] 本文着重讨论交互点播方式下流媒体发布的技术问题。
二、 ASF流媒体文件的制作
ASF流媒体文件的制作分为视频文件的编码和ASF文件中插入控制信息这两个主要步骤。
1. ASF视频文件的编码
为了在网络上传输低比特率的流媒体,其压缩/解压缩算法是有损算法,实现压缩/解压缩算法的程序也称为编码/解码器(codecs)。[3]ASF视频文件的编码是指将视频文件用相应的编码器压缩生成ASF格式的视频文件。
常用的ASF视频文件编码器有:Windows Media Encoder 7、On-Demand Producer等。在用编码器进行编码时,应正确选择网络带宽和音、视频编码算法这两个关键因素。网络带宽涉及传输数据流量,因而影响压缩率,进而影响视频画质,应根据网络的实际情况(如Modem、ISDN、ADSL、Cable Modem、LAN等)选择网络带宽参数,通常在校园网环境下可选择256kbps。编码算法则直接影响视频画质或者音频音质和压缩后文件的数据量,选择编码算法时还应考虑到解码(播放)时应有相应版本的解码器,例如考虑到Windows98 SE下的Windows Media Player 6.4可进行相应ASF文件的播放,则视频编码算法可选Microsoft MPGE4 V2,音频编码算法可选Voxware MetaSound Voice AC24V1(22Kbps)。
2.在ASF视频文件中插入控制信息
Windows Media 流媒体技术的特点之一是交互性很强,这是通常播放的视频所不具备的特征。为了实现交互功能,需要在ASF视频文件中插入相应的控制信息。
2.1插入URL
ASF流媒体播放的一个经典应用是这样的:在一个左右框架结构的网页中,左边框架中播放ASF视频文件,当播放到某一时刻,右边框架中会显示相应的网页内容。这种应用模式在网络教育中是非常有用的。这种ASF视频播放控制指定URL上网页的显示就需要在ASF文件中插入URL信息。
插入URL的方法是:在Windows Media Advanced Script Indexer中打开ASF文件,在相应的时间处暂停视频的播放,在脚本区右击鼠标,选择Add.在弹出的New Script Properties 对话框中时间已经自动设定好,选择Type(类型)为URL,在Parameter(参数)域中输入URL ,它指出将打开网页的地址和目标框架。如:page1.htm&&content,其中page1.htm是要显示的网页,它应与视频文件在同一个文件夹中,content是显示page1.htm网页的框架名称。
需要特别注意的是:当使用服务器上的Windows Media 服务功能控制流媒体的传输时,在ASF文件中插入的URL中应包括Windows Media 管理器中所建立的单播点别名。例如:video/page1.htm&&content,此处的video就是单播点别名。最后选择菜单File>Index this file保存所插入的控制信息。
2.2插入脚本
ASF视频播放时可对其他控件属性或方法进行控制或调用,这需要在ASF文件中插入脚本。
插入脚本的方法是:在脚本区中右击鼠标,选择Add。在弹出的对话框中选择Type(类型)为TEXT,在Parameter(参数)域中输入所需插入的脚本命令,如Play,Stop或Pause等。
2.3插入标记
在一个正在播放的视频中,想立即找到某个关键的知识点并不十分容易。但通过在ASP文件中插入时间点标记就可以方便的实现这一功能。
插入标记的方法是:在Windows Media Advanced Script Indexer中打开ASF文件,在需插入时间点处暂停视频的播放,在标记区右击鼠标,选择Add。然后在弹出的New Marker Properties对话框中输入标记名称,时间也已自动设定好。用此法将ASF文件中所需的多处标记设置后,最后保存插入的控制信息。
2.4导入用于插入控制信息的脚本文件
在一个较长的ASF视频文件中按上述方法插入大量的URL或时间点标记有时并不方便。Windows Media Advanced Script Indexer允许导入文本格式的脚本文件,由这些脚本文件描述所需插入的控制信息,据此完成控制信息的插入。其脚本文件的格式如下:
;****************************************
; Exported by ASI ver 1.0 ; Source File : C:\WINDOWS\Desktop\1.txt ;****************************************
; Attributes
Title :
Author :
Description :
Rating :
Copyright :
; Markers
start_marker_table
00:00:11.6 page1
00:00:45.3 page2
00:00:45.4 page3
end_marker_table
; Scripts
start_script_table
00:00:11.6 URL page1.htm&&content
00:00:20.0 URL page2.htm&&content
00:00:45.3 URL page3.htm&&content
end_script_table
它的结构非常明确,我们可以按照所需插入的控制信息用文本编辑器来编辑它,然后用File>Import Script file命令导入这个脚本文件即可,当然最后也要用前述方法将插入的控制信息保存在ASF文件中。
三、网页中播放ASF流媒体文件的方法
Windows Media流媒体可以通过MMS协议或HTTP协议,在Windows Media Player中或在网页中嵌入相应ActiveX进行播放,我们主要讨论在网页中播放ASF流媒体文件的方法,这在网络教育中更有普遍意义。
1. 在网页中播放ASF流媒体文件的原理
在网页中播放ASF流媒体文件就是在网页中嵌入Windows Media Player ActiveX控件,通过此控件进行ASF文件的播放。以下是插入此控件的HTML代码。
<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=5,1,52,701"
standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
<PARAM name="FileName" value="demo.asf">
<PARAM name="DisplaySize" value="0">
<EMBED type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=media&sba=plugin"
filename="demo.asf"
displaysize="0"
name="WMPlay"
width=320 height=240
></EMBED>
</OBJECT>
其中<object>标签和<embed>标签的嵌套使用是为解决IE与Netscape浏览器的兼容性问题。在<object>标签中,classid指出了Windows Media Player ActiveX控件的版本;ID用于在网页中给这个控件命名,以便在网页中使用脚本(如JavaScript)对其进行调用(在<embed>标签中使用的是name);width和 height用于设定播放时整个显示区域的尺寸,PARAM用于设定控件的属性,例如name指出属性的名称,相应value则设定其属性值。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。