Microsoft Windows CE 3.0中的多媒体流应用
Microsoft Corporation
June 2000
摘要:这篇文章讨论基于Microsoft? Windows? CE DirectX Platform Adaptation Kit 1.2 (or DXPAK)的Windows Media? 组件的多媒体流性能和与其他Microsoft Windows版本的不同。
Contents
Overview
Technical Fundamentals
Windows Media Player Control
Windows Media Technologies
Windows Media Formats
Windows Media Features
Windows Media Protocols
Windows Media Codecs
DirectShow
Filter Graph Manager
Filters
For More Information
前言
数字革命带来了消费者电子空间带来了一场风暴。连接机顶盒的数字电缆带来的数百个频道可以很快替换原有产品。便携式数字音频播放器提供更长时间的音乐播放时间,并且提供更好的声音质量比磁带播放器。消费电子设备的根本变革来源于新的现象和自然的演变。由于这种变革,在不久的将来PC将不再是唯一的数字多媒体源的认识,已经被公认。
许多新的消费品通过数字音乐、电影、电视和其他多媒体内容被消费者接受。即使通过最好的压缩方式处理(比如Microsoft Windows Media? Audio),多媒体内容的数据量依然很大。例如,压缩率为 120Kbits/sec,数字音频需要用3.6MB存储一个四分钟的歌,如果存储一个两个小时的电影,数字视频为300 Kbits/sec需要270MB,4 Kbits/sec则需要3.6GB!
巨大的媒体文件可以通过下边两种方式解决:
下载整个文件到本地内存,并且处理存储数据块序列(本地流)或者处理整个存储文件(非流)。或者下载并处理单独的数据块序列(网络流)。网络流也能够通过服务器实时创建的媒体数据被处理,而不用存储成一个单独的文件。
发送下一个相关的少量数据需要快速处理和回放工作(不是全部数据集)因为多媒体内容是一个连续的数字数据没有坚固的长期时间耦合性。换句话说,一首歌的声音块或者视频帧里的像素能够被独立的处理和播放,至少当有足够的时间时,他们是分开的。这就允许一个在时间groups中的独立数据被抛弃。这些数据通过编码、传输和回放,在任一过程中的独立时间序列中或者以后group中的数据将会在不同时间显示。这种发送块的时间序列的方法,暂时性地减弱到客户端设备的数据被流调用。客户端设备需要准备足够的缓存包数据,防止服务器、网络、客户端中断,或者创造、发送、时间纠正过程中的无规律。
Windows CE如何通过Windows Media组件来适合这种描述?Windows CE DirectX Platform Adaptation Kit 1.2 (or DXPAK)可以提供多媒体回放和基于PC的流接受能力,但是没有更多可用的结构组件。这些组件运行在支持Windows CE 的高性能CPU上(x86, MIPS R4300 and compatible, and SH4, available now with DXPAK 1.1; ARM, StrongARM, and integer MIPS planned for DXPAK 1.2)。Windows Media components for Windows CE 的模块化设计让你有足够的弹性可以选择你的平台上需要那些组件。当使用Platform Builder 为你的硬件创造一个操作系统映象的时候,你可以决定你是否想要一个特殊的DirectX或者用户接口组件、通讯协议,或者文件系统。这种弹性可以让你只安装你需要的技术到你的平台上,节省空间,降低复杂度。
Windows CE 3.0 with the DirectX Platform Adaptation Kit 1.2 (or DXPAK) 为开发下一个杀手级的消费者工具或应用程序提供了整套解决方案。能为数字多媒体装置提供充足的组件集的系统是充满活力、强大的实时操作系统。
Technical Fundamentals
技术基础
Microsoft DirectX的DirectShow部分为Windows CE 上的多媒体服务提供基本平台。可能提供许多单独使用DirectShow的多媒体应用程序,事实上,许多公司正在做这项事情,但这不是唯一的出路。一个通讯结构被建筑在DirectShow之上,使得应用程序开发者的工作提前。他们的结构符合下面的图表:(multimedia1.gif)
Figure 1. Communication structure based on DirectShow
基于DirectShow的通讯结构
用户可以看到图表的顶层是:WEB浏览器或者其他应用程序。应用程序可以将Window Media Player (WMP)控件嵌入,也可以通过COM连接DirectShow的接口。在这两种方案中,DirectShow管理从源到硬件的数据流向。驱动开发者最为关心的是底层。下面需要应用程序开发者了解的有:WMP控件,WMT和DirectShow。
Windows Media Player Control
作为一个ActiveX控件和其他内容一起,存在于WEB页中。WMP控件是一个可以处理本地和流式多媒体文件的通用工具。它支持近来所有的主流媒体文件格式,包括Windows Media格式文件(ASF, ASX, WMA, WMX, WMV, WVX, WM, and WMX files),MPEG格式(MPG and MPE files),和音频格式,例如,MP3, MIDI, WAV, and AIFF, 和 multimedia format AVI files。 所有这些文件格式使用WMP控件可以从本地存储文件中被流式化,并且,当和Microsoft Windows Media 技术相结合时,它将支持通过网络来操作。DirectX Platform Adaptation Kit 1.2 (or DXPAK)支持Windows Media Player 6.4版本的控件。
Placing the WMP Control in a Web Page
在WEB页中放置WMP控件
使用OBJECT标记将ActiveX对象嵌入到WEB页中。下面的例子显示如何使用OBJECT标记插入WMP控件。
<OBJECT ID="MediaPlayer"
CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
TYPE="application/x-oleobject"
WIDTH="320"
HEIGHT="240"
STYLE="position:absolute;
left:50px;
top:50px;"
>
<PARAM NAME="FileName"
VALUE="http://example.microsoft.com/media/sample.asf">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM NAME="ShowStatusBar" VALUE="1">
</OBJECT>
OBJECT标记的ID属性为WMP对象指定了一个名字,后边将应用于脚本语言中。CLASSID属性是IE在页面中创建这个对象所必须的,在前面的例子中将始终列出这个字符串。TYPE属性指出浏览器嵌入的对象是一个ActiveX控件。可选的WIDTH和HEIGHT属性设置WMP对象窗体的尺寸。STYLE属性可以让你指定对象窗体到WEB页的任何位置。
所有的WMP功能通过Microsoft JScript web scripting language来调用。通常不支持其他的脚本语言。
注意在OBJECT标记中CODEBASE属性显然不存在。CODEBASE指定一个URL,如果用户系统上没有WMP控件,则根据该URL下载。这个功能在CE上不被支持。WMP控件必须被包含在你的OS映象中,如果它能被应用于你的程序中。
PARAM标记有两个属性:第一个是被设置性质的名称,第二个则指定这个性质的值。当他们被创建的时候,
PARAM标记初始化WMP对象。在这个例子中,第一个PARAM标记设置文件名性质为URL http://example.microsoft.com/media/sample.asf,定义该文件将被WMP控件播放。该值也可以被设定为本地媒体文件的路径,例如C:\sample.asx。下面的PARAM标记指定对象的播放控制和状态栏是否可见。这些基础能被隐藏替换,使你可以自定义WMP控件的外观和用户接口项目。
在你创建对象并指定正确的文件名后,你可以在你的WEB页中看到WMP控件。
这里有三个其他的HTML标记被用来包含音频和视频在WEB页中——嵌入对象标记<EMBED>、图象标记<IMG>,和 anchor标记<A>。<EMBED>标记被Netscape支持的浏览器插件所创建。Netscape不支持用<OBJECT>标记来嵌入对象,如果你想维持同Netscape浏览器的兼容性你应该使用这个标记。虽然<IMG>标记可以被用来在WEB页中包含视频clips,它能使用有限的几个媒体类型(MPEG, QT, and AVI files.)。 <IMG>标记不提供访问任何WMP控件属性,并且不支持所有的音频媒体。为了使用所有的WMP控件的功能,<IMG>标记不被推荐使用。
<A>标签也能被用来创建一个媒体连接。媒体被通过媒体类型指定的应用程序或者浏览器播放。<A>标签不能像<OBJECT>或者<EMBED>标签一样在WEB页中嵌入媒体。一个键指出WMP控件与Windows Media Player是不同的。结果,不是所有Internet媒体内容可以被WMP控件所掌握。一个例子使用<A>标签进行内容访问。通常情况下,当一个用户使用PC浏览Internet时,点击一个播放媒体文件的连接,Windows Media Player 应用程序出现在桌面上,控制媒体内容从浏览器到播放器中。如果你想创建一个设备或者应用程序支持所有存在的Internet media content,你必须确信control recognizes,并且正确掌握所有不同的传递内容的途径。 DXPAK 1.2包含的WMPHLPR示例提供一个如何使WMP控件通过访问<A>标签回放媒体的例子。当一个用户点击了一个媒体连接,浏览器navigates该页的主机。媒体文件被传递到控件中,并且在浏览器中开始回放。该行为对机顶盒、Internet接入装置、或者其他内存有限或者不通过单一窗口运行的装置非常有用。
Windows Media Player control for Windows CE包含一些与x86-based PCs 上的控件微小的差异。驱动力包含在桌面WMP控件的一个子集中,为嵌入式设备提供一个小的、健壮的、压缩了部分特性的WMP控件。另外,WMP control for Windows CE 也支持一个桌面控件属性、方法和事件的子集。一些属性、方法和事件没有被包括到CE版本的WMP控件中,因为对于非PC设备它们没有实际价值,例如机顶盒和音乐自动点唱机。Microsoft NetShow? player control 不支持向后兼容性,自从所有的NetShow功能被压缩到WMP控件中。某些UI特性也不被支持,例如,context menu, Display panel, Closed Captioning panel, 和 Go To Bar,但是可以在WEB页中用脚本语言实现。
Microsoft PowerPoint? (PPT)流和热区ASP特性不被支持。通过URL flipping ,当播放幻灯片时或者在其他frame中播放其他graphics时,仍可能通过WMP控件在一个frame中播放媒体。Clickable hotspots可以在连接中或者script locations中,转换图片或者video clips ,并且也能够实现URL脚本命令适当地实现在一个ASP文件中嵌入一些times。
Windows Media Technologies
Window Media Technologies (WMT)是一组COM接口和codecs的集合,用来支持宽范围内的服务器/客户端应用程序,音频、视频流和类似于流的脚本命令。
今天,Windows CE 3.0 with the DirectX Platform Adaptation Kit 1.2 (or DXPAK)支持Windows Media Technologies version 4.1 components。这些组件支持客户端使用高级Windows Media格式和world-class codecs回放,比如Windows Media Audio, Microsoft MPEG-4 video, and Sipro ACELP.net low bit-rate speech.
下面将着重于WMT on Windows CE支持的formats, features, protocols, 和 codecs。有时候,Windows CE支持WMT和其他版本的Windows有所不同。在这种情况下,它们的差异和工作区将被讨论。
Windows Media Formats
WMT使用Advanced Streaming Format (ASF)来存储和传输数据。ASF是一个应用程序级的多媒体传输文件格式 (可以被看作一个wire或者传输控制格式),用来安排和组织同步多媒体数据。ASF支持媒体数据在多样的网络种类、网络带宽和协议上进行传输。这是多媒体数据包在低速网络和宽带网络间传输的最优化方案。
Windows CE也支持Advanced Stream Redirector v3 (ASX) 和Windows Media Station (NSC) 元文件。ASX元文件提供一种客户端支持超级连接的流的机制,支持源内容的多重协议,也支持rollover规则,客户端将像支持媒体播放列表一样处理它们。
Microsoft Windows Media Station元文件服务将为ASF客户所希望访问的频道打开一个特殊的频道。访问一个频道的模式和电视机访问一个广播频道的模式是相似的。这种元文件被multicasting支持。
Windows Media Features
Windows CE支持WMT client DirectShow filters使用UDP, TCP, 和 HTTP协议来播放ASF流(在下一部分中将描述Windows Media Protocols)。Windows CE WMT 支持smart streaming,它使用multi-data 速率来编码ASF文件,多媒体流在不同的bit速率下创建一个ASF文件,客户端和服务器协商一个适当的流。服务器依靠播放条件来自动调节流,可以基于网络带宽来选择多媒体视频流。
使用smart streaming,Windows CE WMT客户端基于可用的网络带宽动态地调节,可以使用一个运算法则在保持播放平滑的情况下,只下载关键帧。如果必要,WMT客户端可以允许服务器只发送音频而不发送视频包。在带宽有限的情况下,音频始终保持最高的优先级,这是用户有所体验的。如果网络带宽的条件有所改善,WMT逐步增加视频的bit-rate ,来恢复到最佳的观看效果。另外,如果时间允许,WMT UDP允许客户端向服务器请求将丢失的包再发。最后,当客户端发送ASX控制命令到服务器端十,WMT也提供ASX event-driven stream 转换。
Windows CE WMT不支持老的ASX v2.0 或者 v1.0格式。这些早期版本的所有功能都被包含在ASX v3.0中。另外,PREVIEWDURATION, BANNER, 或者 LOGO ASX elements 不支持Windows CE。Preview方式可以通过在应用程序中使用WMP控件来实现,倘若播放控件可以通过脚本语言来访问。BANNER 和 LOGO elements的功能可以使用DHTML 和 scripting来实现。
CE提供对Authentication的支持。Authentication在任何信息交换发生前得到用户的确认。当用户发送一个请求到服务器被确认成功,服务器确定客户端的身份。对于任何特定的交互作用,客户端和服务器都必须附带一份同意协议。WMT支持下面两种协议,基于HTTP的给Internet应用程序,NTLM适合Intranet应用程序。
在桌面电脑上,当用户登陆时,NTLM使用定制的鉴定信息,这就要求服务器和客户端在相同或者互信的域内。而Windows CE不允许用户登陆,当必须使用NTML authentication时,WMT弹出一个对话框获得证明信息。