基于 Flex和 FMS的远程教学直播系统的设计与实现
2011-09-22丁剑
丁 剑
(北方民族大学计算机学院,宁夏 银川 750021)
基于 Flex和 FMS的远程教学直播系统的设计与实现
丁 剑
(北方民族大学计算机学院,宁夏 银川 750021)
结合 Flex流技术、W eb技术和数据库技术,采用 Flash Media server构建一套能够在校园网内进行流畅直播的教学系统,并给出具体的实现方法,同时也对今后的远程教育工作提供一种新的思路。使用该系统,可以在网络直播的同时,将需要的教学片段、节目录制下来,结合校园网的 VOD视频点播系统,供校园网内的师生随时点播观看。
Flex;FM S;远程教学;直播
Flash Media Server(简称 FM S)服务器是用于用户之间相互通讯的新平台,不仅集成了Flash多媒体交互的特性,又添加了实时音频、实时视频和实时数据流等新特色,使用该平台,可以通过网络存储录制下来的音频、视频,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步共享[1]。
本文结合 Flex流技术、W eb技术和数据库技术[2-5],采用 Flash M ed ia server构建了一套在校园网内在线直播的教学系统。围绕远程教学这个主题从视频录制、视频服务器、视频播放三个主要方面论述实现视频直播的方法与步骤。
1 关键技术研究
1.1 Flex技术
Flex与 Flash实际上是同一平台的两种不同的编程模型,通过共有的 ActionScrip t语言和基础类库,可以构建 R IA应用取代现有 Internet应用。Flex提供了 RPC Service、Data Manage Service和Message Service 3种方式与服务端通信,通过强大的 Flash Media Service和 Flash Cast Service可以构建出包含视频、音频及更强数据协作的应用。
1.2 FM S流媒体技术
Flash Media Server(FM S)将传统的流媒体功能与灵活的开发环境结合起来,为最广泛的群体创建和提供创新的、交互式媒体应用。作为支持Flash在流媒体服务方面具有强大功能的 FM S,具有以下各方面的优点:可以自定义视频流实现直播和录播;通过编程方式动态设置缓冲区,可以根据视频的长度和比特率以及客户端连接速度,精确设置最快的启动时间;使用多种方式、多用户流以及用于同步多个用户之间数据的远程共享对象技术,创建新的视频通信应用;流事件日志记录能够使发布者看到和捕获最终用户观看的确切视频数量文件对象;强大的日志记录功能提供给管理员对系统的运行的细节信息;管理控制台可以实时监控系统性能,实时了解系统运行的负载。
1.3 视频直播技术
网络视频直播主要是通过视频采集客户端、流媒体服务器和流媒体播放客户端来实现。视频采集客户端可以连接入视频采集设备,如摄像机、摄像头等;流媒体服务器用来存储和处理视频流,如目前比较常见的 Windows Media Server,Real Media Server,Flash Media Server;流媒体播放客户端可以通过现有的产品,也可以根据自己应用的需求编程实现。
2 远程教学直播系统的设计与实现
2.1 体系结构
远程教学直播系统主要有三个核心部分组成:视频采集客户端、流媒体服务器和视频播放客户端。体系结构如图 1。
图1 系统体系结构图
视频采集客户端:主要功能是由摄像机将直播音视频信号通过编码器进行编码后传送给 FM S服务器,其中主要的设备包括摄像机,编码直播机(普通 PC机即可),要求高的直播节目可以添加直播切换台、音视频高清编码器。
FM S流媒体服务器:主要功能是将由编码器传送来的音视频信号进行相应的处理保存,并提供实时的流媒体服务。
视频播放客户端:主要功能是提供给用户用来浏览视频节目,以及与其他用户进行实时的文字、视频互动与交流。
2.2 FM S服务器搭建与配置
FM S服务器的安装与配置非常简单,首先可以从 Adobe的网站下载免费的开发者版本,然后进行一步步安装,安装时要记得用户名和密码。安装完毕后,如果安装到了 c盘,可以找到目录 C:Program FilesMacro mediaFlash Media Server 2。
在安装目录 C:Program FilesMacromediaFlashM edia Server 2下有一个 App lications文件夹,如果要新建一个视频应用,就在该文件夹下新建一个文件夹,如新建文件夹 L ive,该文件夹下可以存放服务器端脚本、视频文件、配置文件等。这样就建立和配置了一个最简单的 FM S服务器流媒体服务应用,视频采集客户端和视频播放客户端就可以通过 FM S服务地址 rtmp:∥localhost/live进行视频信息的发布和视频信息的播放。
2.3 视频采集
要实现教学视频信息的远程直播[6],首先要将多媒体教室教师讲课的视频信息进行采集并发布到 FM S服务器。常见的视频采集是将摄像机、录像机、电视机输出的视频信号,通过专用的模拟、数字转换设备,转换为二进制数字信息的过程。本系统采用普通的高清摄像头作为视频采集设备,通过视频采集软件 FM E(Flash Media Encoding)将视频信息及时传送至 FM S服务器。
具体步骤是:在多媒体教室的教师 PC机上安装高清摄像头,并安装采集软件 FM E,打开 FM S,在URL中输入 FM S流媒体服务器的地址和节目名称,如:rtmp:∥192.168.1.8/live,live这个参数是在配置 FM S服务应用时配置的,也可以在管理界面找到;点击 Save to File选择一个本地文件夹来保存直播生成的 flv格式的文件,配置完毕后最后点击 Connect连接 FM S服务器,如果连接成功,将出现 Connec ted,如图 2。如果显示 Connected,点 Start按钮就开始采集视频了。FM E会一边把采集到的文件保存到本地硬盘上的一个文件,同时把数据上传到 FM S上,进行实时转播。
图2 视频采集控制图
2.4 视频直播客户端的实现
在教学直播系统中最关键、应用最广泛的是教学视频播放客户端,通常分为两种,一种是基于A IR的桌面客户端,一种是基于 W eb浏览器的Flash视频客户端。无论哪一种客户端软件,都可以通过 Flex builder3可视化开发环境,结合 FM S相关技术并根据教学系统的各种需求开发出适合自己的视频播放客户端,要开发的视频客户端主要功能包括:视频播放,视频交流,白板,应用共享等。本文以视频播放为例,讲述主要的开发过程。首先,打开 Flex Builder3,新建工程命名为 video,按照向导默认执行下一步,完成向导,然后打开src目录下 video.m xm l,在编辑器窗口中选择 Design标签,打开可视化编辑窗口,从组件视图窗口下控件列表中选择 videodisp lay控件到编辑窗口中,然后点击转换到 source标签,在代码编辑模式下输入相关代码,部分关键代码如下:
private function onPlayVideo(event:MouseEvent):void{
nc=new NetConnection();
nc.connect("rtmp://localhost/live","adm in","123456");
nc.addEventListener(NetStatusEvent.NET_STATUS,onPlayNetStautsHandler);
nc.client=this;}
private function onPlayNetStautsHandler(event:NetStatusEvent):void{
if(event.info.code=="NetConnection.Connect.Success")
{
ns=new NetStream(this.nc);
ns.client=this;
var video:Video=new Video();
video.width= 320;
video.height= 240;
video.attachNetStream(this.ns);
this.myVideo.addChild(video);
this.ns.p lay();
}}
在 Flex左边视图中选择 video.m xm l点击右键,选择 Run App lication,将出现一个运行窗口,等待几秒钟后将出现正在直播的教学视频,其效果如图 3。
图3 教学直播播放
2.5 视频监控
在 FM S安装环境下有一个文件 fm s2_conso le.sw f,这是 FM S的管理服务控制台。通过控制台可以管理用户,监控应用程序中共享对象、流,执行的情况以及内存、CPU等占用情况。每当有客户端连接服务器时,左边就会列出连接的是哪个 app。当视频直播时,通过该控制台可以监控直播流量,服务器负荷,直播时间,同时还可以通过该控制台统计直播期间的网络流量,用户数等参数。控制台如图 4。
图4 FM S的管理服务控制台
3 结 语
该系统在北方民族大学校园网内进行了测试,测试环境采用一台 HPDL380(cpu 2GHZ,内存4G,硬盘 460G)的 PC服务器作为 FM S服务器,采用一台 HPCompad dx2355(cpu酷睿 2双核,内存2G,硬盘 500G)作为教师端视频采集和发布客户端计算机,采用罗技 C910高清摄像头作为视频采集设备,测试了系统在 20用户、50用户、100用户、200用户、500用户下 FM S负载的情况,同时测试了系统在 1个教学点、5个教学点、10个教学点下的 FM S负载情况。测试发现,随着用户数增加到 200以上和教师授课采集端增加到 5个以上,视频播放的质量没有出现衰减和卡的情况,但视频播放有较小的时延。通过测试说明系统比传统的MM S流媒体服务器更好的性能,能够满足目前校园网内视频直播教学的要求,达到了预期的目标。随着今后用户数逐渐增加大和教学点的增多,可以通过增加 FM S服务器数量或搭载集群的方法进行系统的升级和扩充。
[1]倪宇斌,刘波.一个基于多 Agent的远程教学系统研究与实现[J].海南大学学报,2007(25):178.
[2]赵国安,魏东晓,王晓军.基于 W eb的远程教学管理系统的设计及实现 [J].北京邮电大学学报,2007(4):15-16.
[3]刘运龙,黄烟波,黄海.一种基于双 MVC架构的远程教学管理系统的设计与实现[J].计算机系统应用,2006(5):2-3.
[4]杜选.多媒体远程教学系统的设计与实现[J],计算机应用,2006(12):353-354.
[5]胡宁静,岳永恒.远程教学系统中几个关键模型研究[J],计算机工程与科学,2008(30):139.
[6]杨强根.远程教学资源管理与分发系统的研究与实现[J],计算机工程与设计,2007(28):2957.
(责任编辑 刘敏)
Research and Implementation of Remote Teaching System Based on Flex and FM S
DING Jian
(College of Computer Science,North University for Nationalities,Yinchuan Ningxia 750021,China)
A teaching system in live on line,which base on Combination of Flex,Web and database technology,and build using Flash Media server within a campus network,are developed.The system realization method are given.A new idea on the future of distance education works are also proposed.
Flex;FMS;distance learning;live telecast
TP311 < class="emphasis_bold">文献标志码:A
A
1009-315X(2011)01-0056-04
收稿日期:2010-09- 17;
2010-10-29
北方民族大学基金资助项目 (2010Y035)。
丁剑 (1977-),男,回族,宁夏银川人,讲师,主要从事计算机应用、人工智能研究。