APP下载

基于远程教学的监控系统的设计与实现

2010-07-25陈桦卢婷婷

微型电脑应用 2010年7期
关键词:远程教学编码服务器

陈桦,卢婷婷

0 引言

随着网络的飞速发展,现代远程教育已经成为人们进行再进修,实现终身教育的一种重要手段,如何保证在线学生实时的学习效果,为此特别在远程教学系统中加入了监控措施。该系统采用视频监控与屏幕监控相结合的方法对在线学生进行实时监控。

1 关键技术

1.1 Java Media Framework(JMF)

JMF是Java的一个类包。JMF技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。JMF的主要功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支持,如 M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash等。JMF还支持广受欢迎的媒体类型,如Microsofts AVI和MPEG等。此外,JMF软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用自己的定制的内插组件。

1.2 MPEG-4数据压缩编解码技术

由于监控系统的数据量相当庞大,为此在利用网络传输信息时必须对这些信息进行编码压缩以节省网络的传输带宽以及缓解服务器的存储压力。MPEG-4是一种基于模型/对象的视频压缩技术,它充分利用了人眼视觉特性,抓住了图像信息传输的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能。

1.3 RTP/RTCP协议

实时传输协议RTP(real-time Transport protocal)是针对多媒体数据流的一种传输协议,RTP是一对一或一对多的传输情况下工作的。其目的是提供实时通信和实现多媒体数据流的同步,RTP通常在UDP协议的基础上来传送数据。RTP协议可以确定正在传输的数据类型,确定数据包的正确顺序以便正常播放,它还可以同步由不同数据源传输的媒体流。但 RTP本身只提供实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP来提供这些服务,因此当一个应用程序开始一个 RTP会话时将使用两个端口,一个端口分配给RTP,一个端口分配给RTCP。在网络传输中,RTP数据包不一定按照发送时的顺序到达,它甚至不一定能够到达发送的目的地,顺序的重新组织、丢失包的检测,都是由接收端根据RTP包头里面提供的信息完成的。RTP的包头格式如图1所示:

图1 RTP包头格式

传输控制协议 RTCP(real-time Transport control protocal)负责管理传输质量在当前应用进程之间交换控制信息,是提供多媒体数据流量控制和拥塞控制服务的,使用RTP协议的应用程序在RTP会话期间,各个参与者都需要周期性地传送RTCP包,包中包含有已发送的数据包数量、丢失的数据包的数量等统计资料,服务器利用这些信息可以动态地改变传输速率,改变有效载荷类型、监视和控制实时数据的传输等。RTP协议和RTCP协议是配合使用的,它们能以有效的反馈和最小的开销使传输效率最佳化,RTP和RTCP协议特别适合传输网络上的实时数据。

2 总体设计

由于远程教学系统的特殊性,要实时监控学生的学习情况,采用的监控系统主要包括视频监控和屏幕监控相结合的方法进行。由于监控系统在远程教学中起的主要是辅助作用,所以如果网速很慢,监控系统的视频监控措施会关闭,以最大程度的保证学生的正常听课。监控系统中所有的监控数据都存储在监控服务器中,当老师要求查看时,可以向监控服务器提出请求,监控服务器根据老师的要求提供服务。其总体结构如图2所示。

图2 监控系统结构图

客户端系统采用多线程的方法同时对视频和屏幕进行采集、编码及发送。客户端(被监控端)总体工作流程如图3所示。图像经过前端采集后进行压缩,传输模块负责将数据发送至服务器。视频流解码后在监视中心能进行实时查看。而屏幕监控则比较特殊,屏幕采集后先会对是否发送给服务器进行判断,判断的依据是采集的屏幕是否与接收到的屏幕一致(是否还打开有其它网页等),如果一致则不需要发送,如果不一致则需要对其进行编码后发送。

教师及管理人员可以在身份验证后访问视频服务器提供的视频监控资源,并可以对这些资源进行处理。

图3 监控系统客户端主程序流程图

3 系统设计

监控系统主要完成对客户端(即被控端)的视频监控和屏幕监控,其中视频监控主要是通过视频采集、视频编码和视频传输三个部分完成的,而屏幕监控主要由屏幕采集、屏幕编码及屏幕发送3部分组成。

3.1 视频采集

视频采集是视频监控系统的基础,它通过调度影像设备驱动程序来完成视频捕获。由于远程教学系统中的各个学员的摄像头设备各式各样,所以系统对摄像头的要求并不严格。将摄像头的分辨率调到320*240时,捕捉到的图片每张大小约为10Kb左右,传输的帧数为24帧/秒,此时视频传输所需要的码率还不到 250Kbps。现行网络带宽一般都在512Kb以上,因此,由摄像头采集的视频数据可以得到比较流畅的视频传输,完全满足实时传输要求。

设计使用JMF来采集视频。基本步骤是首先获取视频捕获设备(即摄像头)的信息,然后再根据取得的设备信息确定设备的位置。找到设备的位置以后,调用 Manager的CreatePlayer方法创建Player,当Player开始播放的时候,就开始了捕获的过程。具体方法为(1)定位所需要用的捕获设备,通过查询CaptureDeviceManager来定位。(2)获取这个捕获设备的信息 CaptureDeviceInfo对象。(3)从CaptureDeviceInfo对象中获取捕获设备的位置Medialocator。(4)利用 MediaLocator创建创建 DataSource。(5)使用 DataSource 创建 Processor。(6)然后启动 Processor就开始了媒体的捕获。主要代码如下:

3.2 屏幕的采集

在远程教室,屏幕监控模式是必不可少的,通过此功能随时监视学员屏幕,提醒那些在网络课堂里做其他事情的学员专注于课堂学习,同时也可以了解学员的学习情况,以此调节教学进度,使教学活动更为有效。

系统利用Robot()对象拷贝屏幕,系统将屏幕分成M×N个屏幕区域[3],每一个区域对应一个 BufferedImage类的screenShot对象,保存该块屏幕对应的屏幕信息。每次采集屏幕,系统将本次截屏获得的屏幕数据与已经保存在缓冲区的该区域的上一次屏幕数据首先进行比较,如果本次采集的屏幕与缓冲区的不同,则把该区域的图像信息和区域信息,经过压缩编码发送给监控端,压缩比例越大,传输数据量越小。监控端接收到数据匹配到相应屏幕区域块对象,数据解压缩后得到新的屏幕区块矩阵,最后重绘变化的屏幕区域。

部分实现程序如下:

3.3 视频及屏幕的编码

摄像头获取的视频信息由于信息量庞大,直接发送会对网络和服务器都造成严重的影响,因此这些信息必须经过压缩编码以后才能进行传输。而屏幕监控服务需要在网络上传输大量的屏幕图象,而抓取的屏幕图像数据量较大,若直接发送则会导致占用网络带宽过大、实时性差、稳定性差等问题,因此也必需经过压缩后才能将其发送,而接收端相应地也要对屏幕图象数据进行解压缩后才能正确地将屏幕图象显示出来。

本系统没有采用专用硬件芯片,而是使用软件对图像进行压缩编码。经过分析比较,系统采用MPEG-4编码技术。MPEG-4编码技术提供高压缩率,采用分层可扩展性编码,可以根据不同的带宽调整质量,根据需要进行模块的添加,支持多种多媒体应用。通过 MPEG-4压缩算法进行视频流的实时编码,并使图像的压缩和传输并发执行,可以大大提高CPU的使用效率,使视频压缩和传输的整体性能得到很大的提高。

3.4 视频及屏幕的传输

传输时采用UDP协议进行传输,但是UDP传输难以支持实时传输和QOS等问题[4]。为实现视频压缩数据在IP上实时传输,需要对数据进行RTP封包。RTP提供端到端的服务,支持在网络中传输实时数据。RTP本身不能保证数据传输的次序、及时性和服务质量,必须与RTCP一起使用。在RTP会话期间,发送端周期性的向接收端发送RTCP控制信息包,用来监视服务质量。视频数据封装在 RTP信息包中,每个包封装在UDP消息段中,然后封装在IP数据包中进行传输。

3.5 接收端的设计

监控系统的接收端为监控服务器,监控服务器是基于Socket编程实现,采用多线程方式以进行合理分配资源。前端采集模块启动后就自动请求与监控服务器的 IP建立连接。服务器实时监听经由网络传来的数据,选择性的接受连接请求,并分配接收数据和解码线程。服务器通过共享端口向各个监控客户端(教师机)发送数据。

设计时结合文献[5]的传输框架,设计了适合在远程教学时的视频传输框架。如图4所示。服务器接收到视频后,进行解析、存储,如果有教师及相关管理人员需要查看监控信息时,服务器直接把接收到的信息转发给教师,教师机接收到信息后通过解析、编码后观看。

教师及相关人员需要查看这些信息时不是直接向客户端发送请求,而是首先向服务器发送请求,由服务器统一向其提供服务。

图4 视频传输框架

4 结束语

设计和实现了基于远程教学的监控系统,通过在局域网上实际运行,系统运行情况良好,视频流畅,能够满足远程监控的要求。接下来的工作就是突破局域网的限制,在Internet上运行,实际运行情况还有待考验。

[1] 刘明兰,罗伟.基于 OMAP5912远程视频监控系统的设计与实现[J] .工业控制计算机,2009,2(6):68-70.

[2] 胡白燕.远程无线视频监控系统设计[J] .电脑知识与技术,2009,5(22):6196-6197

[3] 张荔,张新家,陈春雷.远程教育系统中屏幕共享服务的设计与实现[J] .机电一体化,2009,4:87-90.

[4] 刘建华.基于GPRS的无线视频监控[J] ,计算机工程与设计,2009,30(5):1145-1146.

[5] 王建勇,刘慧念,卢煜等.视频监控联网中的 H_264传输关键技术研究[J] .计算机工程与设计,2009,30(9):2238-2243.

猜你喜欢

远程教学编码服务器
“对截止日期更通融些”:教师们从上轮远程教学中学到了什么
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
新型冠状病毒肺炎疫情下住院医师骨科临床操作技能网络远程教学培训的探索与思考
子带编码在图像压缩编码中的应用
通信控制服务器(CCS)维护终端的设计与实现
Genome and healthcare
中国服务器市场份额出炉
远程教学交互平台及监督平台设计思考
得形忘意的服务器标准