农村中小学现代远程教育直播系统的设计与实现

时间:2022-03-11 02:21:44

农村中小学现代远程教育直播系统的设计与实现

(山东省宁阳县东疏镇第一小学)

摘 要:农村中小学现代远程教育工程旨在缩小城乡教育差别,促进教育均衡发展,最终实现“同在蓝天下,共享优质教育”的目标。在工程的实施过程中,对工程建设模式进行了调整与改进,采用了一种全新的模式――集中接收模式:即在教育城域网中心机房安装一套卫星接收设备用以接收卫星信号,各中小学通过教育城域网收看由中心机房转发到流媒体服务器的中国教育电视台三套节目。在考察了市场上几款流媒体系统后,本着“节约成本,方便拓展”的原则,决定利用FMS(Flash Media Server)技术自己开发实现视频直播系统。

关键词:远程教育;直播系统;现代科技;视频

一、远程教育节目直播系统的设计

为方便使用,本系统被设计为在线系统,从功能上分为端和接收端两部分,功能设计如下:

(1)端可以捕获到中国教育电视台三套节目信号,并把捕获到的节目信号转换成流到远端FMS服务器上;接收端可以从远端FMS服务器接收到中国教育电视台的三套节目信号,并把接收到的节目信号转换成视频与音频呈现给教师和学生。

(2)为满足复杂网络环境及大规模并发播放的需求,端和接收端支持使用边缘服务器的集群环境。

二、远程教育节目直播系统的实现

本着由浅入深的认知过程,下面以一路流的和接收为例,谈一谈端和接收端的实现思路,并给出关键代码。

1.端的实现

端在启动时,首先检测视频音频设备。设备检测完毕后,用户单击“连接按钮”开始连接服务器,服务器连接成功后,端开始向服务器视频和音频。

(1)视频音频设备的检测

在Flash中,检测机器上是否有可用的视频音频设备很简单,只要取一下Camera.names和Microphone.names的值即可:

var camArray:Array =Camera.names;

var micArray:Array=Microphone.names。

(2)视频和音频的

在视频和音频前,需要创建一个NetStream对象,并将该对象附加于上面创建的NetConnection对象myNC:

myNS=new NetStream(myNC);

同样,为了能接收到从服务器返回的相关信息,也需要为该对象添加一个_STATUS侦听事件,并用函数streamStatus来分析相关信息:

myNS.addEventListener(_STATUS,stream

Status);

然后在该对象上加载视频对象和音频对象:

myNS.attachCamera(myCam);

myNS.attachAudio(myMic)。

其中的视频对象和音频对象可以通过以下方式获得:

myCam=Camera.getCamera(camNO);

myMic=Microphone.getMicrophone(micNO)。

最后用该对象的publish方法将视频和音频以流的形式到FMS服务器:

myNS.publish(streamName,“live”)。

2.接收端的实现

接收端的工作过程跟端的工作过程基本一致,因为接收端播放的是端到FMS服务器上的流。因此,接收端不需要检测视频音频设备。

(1)视频和音频的播放

接收端连接FMS服务器的过程与端相同,接收端连接FMS服务器成功后,同样会触发NetStatusEvent事件并返回info.code为“NetConnection.Connect.Success”的信息,接收端侦听到该信息即可播放视频和音频。

(2)视频的显示

利用上述代码播放流时,可以听到声音,但无法看到视频,与端显示本地视频的方法不同的是:Video对象附加的是上面定x的NetStream对象myNS:

localVideoMC.liveVideo.attachNetStream(myNS);

这样就既能听到声音,也能看到视频了。

3.集群的实现

教育城域网内学校众多,只用一台服务器负担几千用户的并发播放请求,不仅对服务器的处理能力是个考验,对服务器的带宽也是个考验,在这种情况下,使用边缘服务器是个很不错的选择:在各个学校的服务器上安装FMS,并将其配置为边缘服务器,各学校用户利用负载均衡算法连接到自己学校的边缘服务器而不是教育城域网中心机房的源服务器上,这样,不但可以大大缓解源服务器的压力,而且整套直播系统可承载的用户量会大大提升。

随着农村中小学现代远程教育工程的深入实施,教师和学生对高清视频直播、点播的需求会越来越多,要求会越来越高,FMS技术在解决这种供需矛盾中一定会起到越来越重要的作用。

上一篇:舞蹈教学也需要自主学习 下一篇:试论小学语文古诗词教学中的问题及对策