维普资讯 http://www.cqvip.com 软件开发 《中国教育信息化》鳊辑部:mis@moe.edu.cn 基于FLASH+XML+FMS的 视频点播系统的设计与实现 扬州大学新闻与传媒学院 赵志靖 周 静 摘要:视频点播是现代远程教育的一个重要组成部分。目前的视频点播系统都l 是基于Real Helix Server和Windows Media Server的。本文以FMS为后台流媒体数据1 支持,采用Flash AcfionScfipt语言为前台开发语种,结合XML技术,设计开发了一个l 视频点播系统,并以《网络应用基础》网络课程为例,给出该系统的具体实现方法。 关键词:视频点播FMS XML FLV组件 l l 中图分类号:TP31l 文献标识码:A 文章编号:1673—8454(2007)08—0048—03 l 一、引言 FMS组合了传统流媒体功能和灵活的开发环境,用于创 建和实现创新的互动式媒体应用。它借助无所不在的 Flash Player实现了跨平台、适应各种浏览器和连接速率 的功能。 在现代远程教育的异步教学过程中,视频课件的点 播占有很大的比例,采用流媒体技术实现视频课件的点 播具有相当明显的优势。 目前提供流媒体服务的有Real公司的Real Server、 Microsofl公司的Microsoft Media Server、Apple公司的 FMS由两部分构成:服务器和Flash播放器,即服务 器端和客户端。服务器端的应用程序在FMS上有自己独 立的目录,存放服务端脚本文件和其他资源,客户端与服 QuickTime Streaming Server以及Macromedia公司的 Flash Media Server(简称FMS)。前三个公司的服务器都采 用了先进的技术,使得音视频媒体在保持较好质量的同 时能够流畅播放,极大地丰富了网络资源,但媒体缺乏交 互性。Flash的出现,尤其是Flash Media Server的推出,为 务器通过RTMP(Real—Time Message Protoco1)协议相互通 信。Flash客户端通过RTMP协议与FMS建立连接,这样 就在Flash的客户端与服务器端形成稳定的数据流。当 然,通常swf是嵌入在浏览器中的,所以也存在Web服务 器通过H1丫rP协议响应客户请求并将Flash影片发送到 客户端的过程。图l显示的是完整的工作过程。[11 解决媒体交互性问题提供了很好的技术支持。 Macromedia公司的Flash技术最初被用于矢量图形编辑 和动画制作,但随着ActionSeript的应用和Flash Media Server的推出,它在开发包含图像、声音、视频和交互性 的富媒体应用程序中发挥着越来越大的作用,在数据同 步处理上的技术为实现互联网的同步通信传输提供了具 有商业价值的方式。FMS的出现使得Flash成为真正的 客户端软件,从而可以建立客户/服务器(C/S)架构的网 络应用程序。本文利用FMS并结合XML技术设计开发 r一个视频点播系统,所用的流媒体文件为Flash文件, 视频格式是FLV格式。 2.XML 图1 FMS的工作流程 XML是eXtensible Markup Language的简称,它是 W3C组织采取简化SGML的策略而制定的一种可扩充 的标记语言,可以根据数据提供者的需要自行定义标记、 属性名及描述法。 3.FLV 二、相关技术 1.FJ S FLV是Macromedia公司在Sorenson公司的压缩算 法的基础上开发出来的流式视频格式,是Flash Video的 Flash Media Server(FMS)是Macromedia公司推出的 开发流媒体的服务器软件,1.0版命名为Flash Communication Server,2.0版更名为Flash Media Server。 缩写,使用FLV能保证良好的流媒体质量。FLV格式引 入Flash所带来的最大的意义是使大体积的视频文件可 48中国教育信息化/2007 08(高教职教) 维普资讯 http://www.cqvip.com 《中国教育信息化》发行部:eyl@moe.edu.ell 以以流(通过FMS实现)的方式播放。闭 三、视频点播系统的设计与实现 1.视频点播系统的设计 基于FLASH+XML+FMS的视频点播系统主要采用 MediaPlayback组件、ComboBox组件和外部XML文件来 制作。该系统主要由三部分组成:一是数据即外部XML 文件;二是点播系统,主要由Flash中的MediaPlayback组 件和ComboBox组件组成;三是视频素材库。XML是外部 数据源文件,存储要播放的教学视频数据;ComboBox组 件的功能是基于XML文件创建教学视频列表,利用 MediaPlayback组件创建视频播放器界面,通过XML进 行数据传输,连接位于FMS上的FLV文件以实现视频点 播和回放;视频素材库就是将教学视频素材按章节分类, 制作成许多短小的FLV文件。并存放在FMS服务器相应 的文件夹中,当需要用到的时候被播放器通过RTMP协 议连接FMS调用。该系统的体系结构如图2所示。 } Clie nl部分 %,rver部分 解析 r L.l 1竺:P竺Ia l!::I_1 }lI 处理 1 HTrPI 发送swF文件 悃 图2视频点播系统结构图 客户端主要由HTML页面和嵌入的SWF文件实现, 其主要作用是浏览网页和收看媒体节目。服务器端包括 两个服务器:web Server和FMS,web Server负责将 Flash影片发送到客户端,响应客户请求并提供Web服 务;FMS负责存储媒体和传输媒体流,当一个客户浏览器 请求播放存储节目时,它就启动一个线程为客户服务,根 据客户端传递的参数寻找媒体,并用RTMP协议传输流 媒体。 2.系统实现 下面结合本人开发的《网络应用基础》网络课程来介 绍一下该系统的具体实现方法(用Flash 8制作)。 首先,教学视频的制作。 教学视频应包括教师授课所用的课件、教师音视频、 各种教学事件等。其制作过程可参考如下: (1)将教师的讲课现场用摄像机录制下来,导人计算 机中,将其采集成AVI或MPG格式的视频文件。 (2)将采集到的视频转换为FLV格式,利用Flash 8 Video Encoder(Flash 8安装包中含此软件)制作FLV视频 文件。打开Flash 8 Video Encoder,单击“添加”,选中要进 行格式转化的文件,使其添加到对话框中;然后进行“设 置”,可以直接修剪视频的长度,确定Flash视频编码的质 量,输入文件名;选择“高级设置”,可以对视频、音频编码 进行设置,调整视频大小、数据速率,插入视频提示点,对 软件开发 视频进行精确的修剪和裁切等;设置完成后就可以“开始 队列”,Flash 8 Video Encoder对数字视频进行编码,输出 FLV视频文件。 第二,外部XML数据文件的创建。 按照下面的格式创建一个XML文件,命名为“video. xml”,可利用Dreamweaver 8进行编辑。如果没有XML 编辑器,也可以用记事本来编写,编写完成后将文件另 存,另存时文件扩展名改为.xml,“编码”项选择UTF一8。 <?xml version=”1.0”encoding=”UTF-8”?> <menu> <item> S Ⅲ h <title>总线型网络</}= title> <url>zong.lfv</url> </item> <item> <title>星型网络</title> <url>star.lfv</url> </item> </menu> title属性对应ComboBox组件label的值,url是要调 用的视频文件的路径,对应ComboBox组件data的值。 第三,设置FMS以便流式加载FLV文件。 (1)在FMS应用程序文件夹中创建一个文件夹,命名 为my_application。 (2)将main.asc文件(可以在Flash 8\Samples and Tuto— rials\Samples\C0mp0nents\FLVPlayback\main.asc Flash 8应 用程序文件夹下找到该main.asc文件)复制到my_ application文件夹中。 (3)在my_application文件夹中创建名为streams的 文件夹。 (4)在streams文件夹中创建名为一definst一的文件夹。 (5)将制作的教学视频FLV文件放置于一definst一文 件夹中。要访问位于Flash Media Server上的FLV文件, 使用如rtmp://my_servername/my_applieation/star.fly之类 的URL即可。 第四,加载并解析外部XML文件。 在Flash中加载并解析外部XML文件,将XML中的 数据动态加载到ComboBox组件中。在Flash舞台上创建 ComboBox组件的一个实例,命名为flvlist,放在一个单独 的层上,该层命名为“components”;在时间轴上添加一新 层,命名为“as”,打开“动作”面板,编写Action Script脚本 语言,将XML文件加载到ComboBox组件并显示。 最后,实现教学视频的点播。 (下转第52页) China Education Info 49 维普资讯 http://www.cqvip.com 资源建设 《中国教育信息化》鳊辑部:mis@moe.edu.cn 选,整理成逐条文本形式。对所有文本采用最大正向匹配 切词算法,进行切词,提取特征向量,并对特征向量进行 权重计算表示成向量空间模型,用BP神经网络优化分 类器模型对文本进行分类,利用此文本分类技术对学生 问题库进行类别划分,限定任务搜索范围,加快检索速 度,方便用户查找。 3.关联规则 务要求进行相应数据寻址,进行数据处理并返回请求信 息,这样用户完全可以毫无障碍地查看信息,而不必要理 会信息的物理结构。 三、结束语 高校电子资源的整合是信息时代高校教育中占主 导地位的学科学习方式,也必将成为新世纪学校教育教 学的主要方法。它不仅给予学生及时有效的课程帮助辅 导,而且加强了老师对学生的管理,促进了师生之间的 关联规则是当前数据挖掘研究的主要模式之一,侧 重于确定数据中不同领域之间的联系,找出满足给定支 交流,势在必行。在当前我国积极推进教育现代化、信息 化的大背景下,倡导和探索信息技术和学科整合的教 学,对发展学生的“信息素养”,培养学生的创新精神和 实践能力,有着十分重要的现实意义。同时,也为解决目 前高校生师比过大、教师资源缺乏等问题提供了良好的 解决思路和手段。⑧ 参考文献: [1】刘晶炜,闰健卓,朱青.IBM信息集成技术原理及应用 [M】.北京:电子工业出版,2004.5 『21张付志,巢进波 信息集成技术在数字图书馆中的应用 持度和可信度阈值的多个域之间的依赖关系。『51挖掘关 联规则是指在数据仓库中挖掘出具有这种形式的规则: 由于某些事情的发生而引起另外一些事情的发生。 将关联规则算法用到本系统中,通过分析学生成绩 数据库,系统得到某门特定课程的先修课程,学生可以通 过察看自己是否学习过某门特定课程的先修课程,来确 定自己是否适合选择该门课程,或者确定要想学好某门 课程必须补充哪些课程知识,从而使系统实现辅助学生 学习的功能。 4.信息集成技术 研究U].计算机工程,2005,31(7):90—92 【3]陈京民.数据仓库原理、设计与应用[M】、北京:中国水利 水电出版社.2004、3 信息集成的首要指导原则是:在用户看来,他们需要 的所有数据,应该好像驻留在一个单一的数据源里。信息 可能在不同的地方、以不同的语义、格式存储,访问方法 【4]哈尔滨信息工业大学信息检索研究室[DB/OL]、http:// ir.hit.edu、cn/phpwebsite/index.php?module pagemaster&PAGE各异,因此对信息的检索也变得极为复杂。信息集成技术 实质上将信息需求者屏蔽于所有这些复杂性之外。用户 通过页面应用程序向系统提出服务请求,中介层根据服 +-+-+-+-+-+一+-+-+一+-+-+-+一+-+一+-+一+-+-+-+一+-+-+-十userop=viewpage&PAGEid=149,2006. _【5]邵峰晶,于忠清、数据挖掘原理与算法[M卜}匕京:中国水 利水电出版社.2003 -十-+-+一十-十-十-十-十一十-十一—’ -十-十-十-十-十-十-—’ -—’ -—’ 一十-十 (上接第49页) 在Flash舞台E创建MediaPlayback组件的一个实 例,命名为flvplay,置于“components”层中。在“as”层继续 添加脚本命令如下: import mx.video. : 的FLV文件的地址传递给MediaPlayback的播放路径,这 样就可以调用FMS上的视频文件,实现视频点播功能了。 四、结束语 在线视频点播技术在现代远程教育领域中具有广阔 的应用前景。本点播系统功能强大且维护方便。在维护 时,XML文件和教学视频都在外部,可以方便地对XML var cbListener:Object=new ObjectO; cbListener.change=function(evt—obj:Object):Void{ var currentlySelected. ̄)bject=evt_objlargetselectedltem; lfvplay.autoSize=true; lfvplay.setMedia rtmp://myservername _文件中的数据进行添加、修改,不必再重新发布Flash源 文件,能够做到一次制作,跨平台输出,不受操作系统和 / 浏览器版本;视频文件的添加可以利用FTrP直接上 传到FMS。此外,本系统的播放器是利用Flash的 MediaPlayback组件实现的,操作简单,功能完善,播放器 也可以具有自己的风格和特色。⑧ 参考文献: [1】谢建华,岳元亚.应用Flash Media Server技术开发网络 视频会议系统U1 福建电脑,2006(8):164—165 my_application/”+currendySe1ected.data,"FLV”); lfvplay.play(); }; lfvlist.addEventListene change”,cbListener); lfvlist.addEventListener(”change”,cbListener)注册了一 个flvlist侦听器对象,当选择flvlist中的菜单项时就会调 用侦听器函数change。flvplay.setMedia是将位于FMS上 『21陈冰.F1ash第一步fM】.清华大学出版社,2006. 52中国教育信息化/2007.08(高教职教)