《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于JMF和SMIL技术实现在线虚拟教室

基于JMF和SMIL技术实现在线虚拟教室

2009-01-05
作者:孙树刚

引   言 

由于带宽的限制,目前在网络上提供多媒体资料传输的应用还得不到所需的品质保证,市面上也没有一个非常完整的开放式多媒体传输协定和播放环境.然而随着网络技术的进步和带宽的逐步增加,电子商务,远程教学,视频会议等都将需要一个即时互动的多媒体播放系统. 

要在网络上支持多媒体即时和同步的特性,需要以即时资料流(streaming)的形式,一边下载一边播放多媒体材料.本专题的目标就是实现一个以SMIL技术为标准,以java applet开发的在线虚拟教室系统,该系统也是整个英语远程教学系统的一部分.本专题结合SMIL语言描述多媒体资料“同步展示”的机制来制作远程教学所需的教学内容,利用java语言跨平台和网络通讯的能力,使用JMF技术来处理播放多媒体课件,用RTP协议来传输多媒体资料流,最终形成一个“虚拟教学系统”.登录本系统后,老师可以播放用SMIL技术制作的多媒体教学内容,让所有学生能够同步地接收到SMIL教材和老师的讲解内容.此外,整个上课的过程都会以一个SMIL档案的形式记录下来,方便学生在下课后随时观看复习,以满足远程教学中“即时”,“同步”的要求. 

技术背景 

1.JMF和RTP 

Java媒体框架(Java Media Framework,简称JMF)是向java独立应用程序和小应用程序中集成媒体数据类型的应用程序接口(API).它是特为利用Java平台的特征而设计的.它使java程序具有很多新功能:捕捉音视频信号,存储,播放并处理媒体数据,并能够传输媒体数据和对多媒体格式进行编码和译码.它还支持压缩的媒体流及存储媒体的同步,控制,处理和播放.支持媒体流,就是说在接收媒体流的同时就产生音视频,而不需要在本地存储. 

JMF RTP API提供了对实时传输协议RTP的支持.JMF用会话管理器在发送端和接收端建立RTP会话连接.JMF使用一个SessionManager(会话管理器)来协调RTP会话,会话管理器跟踪会话的参与者和被传输的流,从本地参与者的角度维护会话状态.图1和图2概括了其工作过程. 

2.SMIL 

SMIL是同步多媒体集成语言(Synchronized Multimedia Integration Language)的缩写, 通常被人们读作“Smile”.它是由W3C(World Wide Web Consortium)组织规定的多媒体操纵语言.最新的SMIL版本是2001年8月推出的SMIL 2.0版本. SMIL是能够使音频、视频以及文本等多媒体信息内容要素获得同步的描述语言。创建SMIL文件是很简单的,很多SMIL文件只需要文本编辑器就可以创建修改。一些简单标志的书写就可以完成一个SMIL文件. 网页设计者可很容易地安排网页上的视频、声音及文字各部分的时序,而不需要任何编程.同时,使用SMIL也可显著节省带宽,因为在同一网页中只有被使用的资料才会下载.

图1. RTP Reception

图2.RTP Transmission

系统功能 

该系统用java语言实现,利用JMF与RTP传输技术实现传输和播放SMIL教材,采用C/S构架,服务器端只要是提供客户端登录系统,处理多媒体材料的广播信息到指定的客户端,判断SMIL文件中所要求的多媒体文件类型,提供客户端提出的多媒体传输服务.客户端负责接收想要播放的SMIL文件中的多媒体资料,根据SMIL文件中对于展示播放的同步要求,通过网页上的链接来选择想要播放的教材. 

根据客户端登录的权限可将用户分为老师和学生两种身份,教师部分有选择教材,多媒体展示画面的操作界面,指定广播来源和对象及提供画面注解的功能.学生部分则通过Applet界面执行接受教师端广播画面的功能.具体功能如下: 

1.同步多媒体的播放 

使用SMIL语言定义每个媒体文件的版面配置,文档来源,播放的起止时间和同步关系.由于媒体信息并不存在于SMIL文件中,可以独立存放在媒体伺服器中,所以客户端能够很快的取得SMIL文件提供的信息,由SMIL Parser分析SMIL展示结构后立即向媒体伺服器发出播放媒体文件的请求.假如突然改变媒体的播放顺序,也只需编辑SMIL文件即可,不需要重新整合. 

2.即时多媒体传输 

由于声音,影像文件相当庞大,如果以TCP协议传输将无法满足即时需求,而且会增加网络的负载,因此本系统将透过JMF/RTP建立即时多媒体的流传输能力,在网络上做到同步传输. 

3.提供Application和Applet两种版本 

通过java Applet方式,在任何支持java的浏览器中即可使用本系统来学习.但由于Applet在安全性上的限制,所以我们又另外开发一个java Application版本,使本系统的功能更加完善. 

设计实现 

1.SMIL文件的制作 

仅以一个教学文件的制作为例说明制作过程,以下是部分源文件: 

 

……… 

 

 

以上源程序中各种媒体文件的关系如下图所示: 

图3.各种媒体信息在时间轴上的关系 

2. 系统设计 

整个系统的设计分为客户端和服务器端两部分,系统架构流程如图4所示: 

I.客户端 

客户端主要由html页面和嵌入式的Applet实现,其主要作用就是浏览网页和收看媒体节目.客户首先登录到教学系统,在进入主页面之前,首先询问用户是否装有JMF客户端软件包.如果没有安装,则提示用户从系统提供的目录下下载并安装.JMF软件检测通过后,就进入虚拟教室主页面.这时可以有两种选择: 

(1).客户点击一个媒体节目的链接后,服务器端就会将用户所点播的节目名称作为参数传递给服务器,服务器启动一个新线程并建立一个RTP会话来提供服务,开始传播媒体流;与此同时,客户端浏览器会自动下载并运行一个用于媒体流播放的Applet程序PlayerApplet,它包括播放器和播放节目的控制面板.当PlayerApplet启动后就会和服务器进行通信,建立RTP会话,开始从服务器端接收媒体数据并在播放器上播放.用户可以收看并控制节目的播放,服务器端运行的是Java服务程序,PlayerApplet和媒体流传输服务程序通过Socket连接来传输控制信息,用RTP连接来进行媒体流传输; 

(2).点击观看实时讲课后,浏览器就会下载并运行PlayerApplet,其功能基本同上,不过它接收的是服务器端传来的老师讲课的实时媒体流.若此时没有老师讲课,则它会从服务器端得到相应的提示信息.

II.服务器端 

服务器端实现以下几个部分的功能. 

(1).网络基本服务:主要是对客户的网络请求作出响应并提供基本服务,例如客户端请求的页面显示,Applet服务等. 

(2).媒体传输服务:主要是对已存储媒体和实时媒体流的传输,其功能由java程序来完成.当一个客户端浏览器请求播放存储节目时,它就启动一个线程为用户服务.利用客户端传来的参数中所指定的节目名称,该线程就到媒体存储服务器上寻找媒体,并用RTP协议进行传输把媒体流发送给客户,如果有教师登录并进行讲课时,它就从媒体制作控制服务器上接收实时媒体流,并将其广播到网络上去,多个客户就可以接收媒体流,它要建立RTP会话并用SessionManager来管理会话. 

(3).媒体制作控制服务:它是一个java程序,一方面可以允许教师登录,把教师的讲课内容录制并转换成媒体流进行广播传输;另一方面,系统管理员还可以用它来进行媒体节目制作,媒体格式的转换等工作。 

几点体会 

1.JMF/RTP支持的媒体文件格式有限 

2.CCD的传输格式为Stream,当复制多份给客户端时,服务器无法承担,而且音频和视频同步的实现相当困难. 

3.同时以RTP方式传到客户端的音视频信息不一定会同步,需要程序做同步控制 

4.Java Applet安全性的问题 

5.画面同步部分,仅传送控制信号,而不是传送整个页面,以加快画面显示速度. 

结  束  语 

本课题主要是探讨在分布式环境下开发一套互动式的多媒体远程教学系统,让这套系统可以在目前的Internet上实际执行. 

经过本专题制作的全过程,我更深入的理解了在线媒体播放的技术,流媒体传输技术,同步控制的方法和互动性功能,让多媒体远程教学成为网络上重要的一项服务功能. 

参考文献: 

1.王峰等编著.Java多媒体程序设计.清华大学出版社, 

2.www.liumeiti.com,流媒体中文网 

3. java.sun.com 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。