流动的:一个快速的,多平台的开放源码的同步化多媒体整合语言唱机Dick C.A. Bulterman, Jack Jansen, Kleanthis Kleanthous, Kees Blom and Daniel Benden CWI: Centrum voor Wiskunde en InformaticaKruislaan 4131098 SJ Amsterdam, The Netherlands+31 20 592 43 00Dick.Bulterman@cwi.nl摘要:本文概述了一个出现在早期的流动性的同步化多媒体唱机。
不同于其它同步化的实现,早期的播放器是一个可重组的同步化引擎,可以定制作为一个实验媒体播放器的核心。
同步化唱机是一个引用了同步化多媒体引擎并可以集成在一个广泛的媒体播放器的项目。
本文是以我们要创造一个新的同步化引擎为动机的综述开始的。
然后论述的是早期媒体播放器的核心架构(包括可扩展性,播放器自定义的集成装置)。
我们以一个关于我们在windows,Mac,Linux版本应用于台式机以及PDA设备上实施流动性例子的体验的讨论结束。
类别和主题描述符:H.5.2 多媒体的信息系统。
H.5.4 超级文本/超级媒体。
一般词汇:试验,性能,验证。
关键词:同步化多媒体整合语言,唱机,公开源代码,演示。
1.动机:早期公开的同步化媒体播放器是一个非常有特色的公开源代码的同步化 2.0播放器,它以研究团体的意图被使用(在我们的研究团体内外)目的是为了研究项目的团体在需要源代码的时候可以访问生产特性的同步化播放器的网站。
它也被用作一个独立的不需要专有的媒体格式的同步化播放器使用,播放器支持一系列同步化2.0配置文件(包括台式机和移动的配置)可以被分配利用在Linux,Macintosh,windows系统的台式机,PDA设备和掌上电脑。
同时现存的几个同步化播放器,包括网络视频播放软件,IE浏览器,小型同步化播放器, GRiNS ,X- GRiNS ,以及各种各样专有移动设备,我们发展流动性唱机有三个原因:准许制作数字以及个人或者课堂使用中的的全部硬拷贝即时没有提供拷贝权限或者商业性的利益分摊,而且在第一页有这种拷贝的注意事项。
服务器上有关于复制以及翻版的分发列表的通知。
需要事先明确具体的许可权以及费用。
'MM’04, October 10-16, 2004, New Y ork, New Y ork, USA.Copyright 2004 ACM 1-58113-893-8/04/0010...$5.00.现有的同步化播放器没有提供一个完整同步化2.0播放器的正确实现。
早期的播放器所有的同步化工具,是以同步化2.0语言的属性为基础加上扩展功能能够支持高级的动画以及规范可移动设备以3GPP/PSS-6同步化使用.所有的同步化播放器都是针对商业SMIL表达专有媒介。
早期的播发器使用开源的媒体解码器和开源的网络传输协议,以便播放器可以轻松定制广泛的使用范围的研究计划。
我们的目标是建立一个鼓励发展类似的多媒体研究输出的平台,,我们期望的是一个标准的基线播放器的供给,其他研究人员和开发机构可以集中精力到基线播放器的集成扩展(从新媒体的解码器或新的网络控制算法任何一个中)。
这些扩展可以在其它的平台上被共享。
在2004年中期,与螺旋形客户机对照,同时移动到一个GPL核心,早期的播放器支持一个广阔的范围的同步化应用指标构架,它提供了一个准确实现的更完整的同步化语言,它在低资源配置下提供了更好的性能,提供了更多可扩展的媒体播放器架构。
它也提供了一个包含所有媒体解码作为部分开放的客户基础。
活动的目标社区不是媒体内容浏览器,而是多媒体设施开发者,协议和网络。
我们的目标是搞清楚在现有的部分SMIL实现中所产生的多组完整实施,支持甚至异乎寻常的特性的同步化语言。
下面段落提供的是一个播放器架构的介绍和描述的是这个国家的各种各样的流动的实现。
然后我们讨论流动的核心为什么能在其他的项目中使用。
我以一个流动的功能对SMIL的支持的讨论为开始。
2.对SMIL 2.0功能的支持:SMIL 2.0介绍了用于标准构成的50以上模块的10个功能组,这些模块详细补充说明了SMIL 2.0语言的30个XML元素和150个属性,除了定义模块之外,SMIL 2.0 规范也定义了一些SMIL配置文件:收集元素满足一个实现团体的特殊需要的指定面向软件的属性和属性值。
公用配置文件包括完整的SMIL 2.0语言,SMIL要素,3GPP SMIL,XHTML+SMIL和SMIL 1.0 配置文件。
这些配置文件的评论已经是这张纸力所不及的,但是流动发展已经提供了一个能被用作支持各种各样SMIL目标配置文件的自定义的播放器部件的关键核心。
这已经导致准许播放器几乎所有界面接口的一个架构,在某种程度上来说,调整适应的格局,日程安排,媒体处理使交互模块成行以满足个别的属性的需要。
流动的播放器是唯一支持这个构架的播放器。
流动的播放器提供了一种正确实现SMIL 2.0语言的属性,加上提供了对动画功能和定时控制增强模式扩展。
与其它商用的和非商业播放器比较,流动播放器工具不只是一个核心调度引擎,它也提供了完全支持SMIL布局,交互作用,完美控制和网络化设施。
迄今为止流动的装备最好SMIL语言最完整的实施对大多数SMIL语言有效。
3.流动的架构:这个章节提供一个流动核心架构的综述。
然而这个讨论是高水平的,它将提供足够的流动性演示。
3.1高级的接口结构:图1显示出最高水平播放器空想,播放器核心支持高水平控制外部的入口点(包括播放/停止/暂停)和依次管理一系列提供接口到数据来源的外部工厂。
不像其他的播放器视SMIL为一个数据类型,流动的引擎在输入/输出/屏幕/设备接口相互作用中扮演着一个中心的角色。
这个架构准许入口点的类型(而且瞬间评价)存在定制化以及把各种各样的数据输入源和渲染器分离出来。
3.2公共的服务层:图2显示的是一组被用来为播放器进行操作的公共服务。
它们包含操作系统界面,牵引体系界面和支持XML基线功能。
所有的这些服务都是流动性提供的;它们可能也被统一到其它播放器相关的项目或者它们可能被新的对特殊的设备或者算法最佳化的服务部件取代。
图2.流动性的一般服务层3.3播放器公共核心:图3 显示一个流动的公共核心架构抽象的视图。
视图本质上是单一的流动播放器的实体。
尽管只有一个极好的客体表露了各自的服务,在播放器的发展中多样可交互的实现已经被发展应用于所有物体(除了DOM 树)。
例如,多样调度已经发展到SMIL配置文件与操纵力的匹配。
在图形中的箭头表示一个抽象类依赖于其它抽象类提供的服务。
堆叠式箱子表示播放器的一个单一的将要包含多样混合级别执行抽象类的实例。
一个用于声音,一个用于图像,等等。
所有的堆叠式箱子抽象类伴随着一个工厂模式的运行创作所必须的具体的种类而发生。
大多数的播放器的实现是构筑平台独立。
我们将讨论这个平台独立的组成,它被5个单独的播放器实现重复利用。
播放器平台相关部分包括支持实际渲染,用户界面交互和数据源加工和控制。
当播放器活跃起来,这里有一个调度程序的单一实例和布局管理器,这两种依赖于DOM树对象。
多样的数据源实体和可播放的实体被创造. 它们与多样的抽象的渲染曲面相互作用. 这个可播放的抽象类是一个媒体调度接口节点(播放, 停止), 然而渲染器抽象类是一个索引(重新生成).当渲染器抽象类是牵引接口(重新生成),可播放的抽象类对于一个媒体节点是调度程序接口(开始,结束)。
注意不是所有的可演奏都是渲染器(音频,SMIL,动画)。
架构已经被设计为所有的部件都是按照一个供选择的实现可换的。
用这种方法,流动的核心能被迁移到一个专用的SMIL引擎或者一个不是SMIL引擎(比如支持MPEG-4或者其他规格)。
抽象的接口由播放器提供不需要一个“SMIL 在上面”的材料处理的模型。
抽象接口可以被用作其它高水平控制模型(比如在一个XHTML+SMIL 中实现),或者用于管理不是SMIL的低水平的给予补偿(比如时间文本)。
注意为了改进可读性说明,所有的辅助类(线程处理,几何学和颜色处理,等等),几个对于一般的理解不重要的类(播放器驱动引擎,转换滤镜,等等)已经在关系图中略去。
4.实现经历:这个分段将简单的回顾我们实现流动播放器的经历。
我们在SMIL发展中讨论实验平台的应用以及描述一套用来检验流动性播放器核心功能而创建的实验文档。
我们以一个在流动性播放器性能上的讨论结束。
4.1实现平台:一个SMIL配置文件已经被确定了各种各样的平台和设备,实行从台式设备分离出来到移动设备。
为了支持我们在分布式SMIL文档扩展的研究以及提供一个被用于其它研究工作的播放器,我们决定提供各种各样的SMIL实现用于流动的计划。
流动的核心为了给接下来的计划提供支持可被作为一个单一的C++源代码使用。
LINUX:我们的源代码包含制作的文件与RH-8 Linux平台一起使用。
我们为媒体使用FF-MPEG使用提供支持。
Macintosh:流动性支持苹果开发的X 10.3系统。
媒体渲染器可通过支持内部的API通道和FF-MPEG通道使用。
播放器用户界面使用标准的MAC约定和支持。
windows:流动性除了提供传统的Win32而且支持目前一代Windows平台。
它已经在XP系统上做了最广泛的测试(包括家庭机,企业机以及平板电脑)和win 2000系统。
媒体渲染器包含第三方和支持本地连续成像的媒质。
掌上电脑:流动性支持掌上电脑2000,掌上电脑2002以及windows Mobile 2003系统。
掌上电脑实现提供对基础成像,声音和文本工具的支持。
Linux PDA 支持:流动性提供对ZAURUS LINUX-PDA的支持。
媒体支持FF-MPEG库通道,UI支持QT通道。
媒体支持包括音频,图像和简单的文档。
在每一种实现中,我们已经把用于提供支持和控制功能的SMIL列入最初的计划重点。
我们未曾使媒体渲染器最佳化在流动性1.0中释放,但是期待在未来的版本中提供加强支持。
4.2 演示和测试套件:为了证实流动性播放器可以不通过标准的SMIL 测试组实现 ,几个重要的演示和测试文档已经被分布到播放器核心包括: 欢迎界面:一个简短的基本演示包括定时描述,媒体渲染,转换以及动画。
NYC :一个在台式设备和移动设备上简短的幻灯片放映演示了时间调度,转换以及媒体渲染。
消息:一个复杂的交互式新建文档测试链接,基础事件的激活,高级设计,定时以及媒体集成。
像NYC 一样,这个演示支持分化型的移动设备和台式设备。
链接:一系列的链接和交互式的测试案例。
闪光灯:一个交互式用户指南测验描述了客户化使用形式属性测试以及链接/交互式支持。