《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 基于JMF和SMIL技術(shù)實(shí)現(xiàn)在線虛擬教室

基于JMF和SMIL技術(shù)實(shí)現(xiàn)在線虛擬教室

2009-01-05
作者:孫樹剛

引?? 言?

由于帶寬的限制,目前在網(wǎng)絡(luò)上提供多媒體資料傳輸?shù)膽?yīng)用還得不到所需的品質(zhì)保證,市面上也沒有一個(gè)非常完整的開放式多媒體傳輸協(xié)定和播放環(huán)境.然而隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步和帶寬的逐步增加,電子商務(wù),遠(yuǎn)程教學(xué),視頻會(huì)議等都將需要一個(gè)即時(shí)互動(dòng)的多媒體播放系統(tǒng).?

要在網(wǎng)絡(luò)上支持多媒體即時(shí)和同步的特性,需要以即時(shí)資料流(streaming)的形式,一邊下載一邊播放多媒體材料.本專題的目標(biāo)就是實(shí)現(xiàn)一個(gè)以SMIL技術(shù)為標(biāo)準(zhǔn),以java applet開發(fā)的在線虛擬教室系統(tǒng),該系統(tǒng)也是整個(gè)英語遠(yuǎn)程教學(xué)系統(tǒng)的一部分.本專題結(jié)合SMIL語言描述多媒體資料“同步展示”的機(jī)制來制作遠(yuǎn)程教學(xué)所需的教學(xué)內(nèi)容,利用java語言跨平臺和網(wǎng)絡(luò)通訊的能力,使用JMF技術(shù)來處理播放多媒體課件,用RTP協(xié)議來傳輸多媒體資料流,最終形成一個(gè)“虛擬教學(xué)系統(tǒng)”.登錄本系統(tǒng)后,老師可以播放用SMIL技術(shù)制作的多媒體教學(xué)內(nèi)容,讓所有學(xué)生能夠同步地接收到SMIL教材和老師的講解內(nèi)容.此外,整個(gè)上課的過程都會(huì)以一個(gè)SMIL檔案的形式記錄下來,方便學(xué)生在下課后隨時(shí)觀看復(fù)習(xí),以滿足遠(yuǎn)程教學(xué)中“即時(shí)”,“同步”的要求.?

技術(shù)背景?

1.JMF和RTP?

Java媒體框架(Java Media Framework,簡稱JMF)是向java獨(dú)立應(yīng)用程序和小應(yīng)用程序中集成媒體數(shù)據(jù)類型的應(yīng)用程序接口(API).它是特為利用Java平臺的特征而設(shè)計(jì)的.它使java程序具有很多新功能:捕捉音視頻信號,存儲,播放并處理媒體數(shù)據(jù),并能夠傳輸媒體數(shù)據(jù)和對多媒體格式進(jìn)行編碼和譯碼.它還支持壓縮的媒體流及存儲媒體的同步,控制,處理和播放.支持媒體流,就是說在接收媒體流的同時(shí)就產(chǎn)生音視頻,而不需要在本地存儲.?

JMF RTP API提供了對實(shí)時(shí)傳輸協(xié)議RTP的支持.JMF用會(huì)話管理器在發(fā)送端和接收端建立RTP會(huì)話連接.JMF使用一個(gè)SessionManager(會(huì)話管理器)來協(xié)調(diào)RTP會(huì)話,會(huì)話管理器跟蹤會(huì)話的參與者和被傳輸?shù)牧?從本地參與者的角度維護(hù)會(huì)話狀態(tài).圖1和圖2概括了其工作過程.?

2.SMIL?

SMIL是同步多媒體集成語言(Synchronized Multimedia Integration Language)的縮寫, 通常被人們讀作“Smile”.它是由W3C(World Wide Web Consortium)組織規(guī)定的多媒體操縱語言.最新的SMIL版本是2001年8月推出的SMIL 2.0版本. SMIL是能夠使音頻、視頻以及文本等多媒體信息內(nèi)容要素獲得同步的描述語言。創(chuàng)建SMIL文件是很簡單的,很多SMIL文件只需要文本編輯器就可以創(chuàng)建修改。一些簡單標(biāo)志的書寫就可以完成一個(gè)SMIL文件. 網(wǎng)頁設(shè)計(jì)者可很容易地安排網(wǎng)頁上的視頻、聲音及文字各部分的時(shí)序,而不需要任何編程.同時(shí),使用SMIL也可顯著節(jié)省帶寬,因?yàn)樵谕痪W(wǎng)頁中只有被使用的資料才會(huì)下載.

圖1. RTP Reception

圖2.RTP Transmission

系統(tǒng)功能?

該系統(tǒng)用java語言實(shí)現(xiàn),利用JMF與RTP傳輸技術(shù)實(shí)現(xiàn)傳輸和播放SMIL教材,采用C/S構(gòu)架,服務(wù)器端只要是提供客戶端登錄系統(tǒng),處理多媒體材料的廣播信息到指定的客戶端,判斷SMIL文件中所要求的多媒體文件類型,提供客戶端提出的多媒體傳輸服務(wù).客戶端負(fù)責(zé)接收想要播放的SMIL文件中的多媒體資料,根據(jù)SMIL文件中對于展示播放的同步要求,通過網(wǎng)頁上的鏈接來選擇想要播放的教材.?

根據(jù)客戶端登錄的權(quán)限可將用戶分為老師和學(xué)生兩種身份,教師部分有選擇教材,多媒體展示畫面的操作界面,指定廣播來源和對象及提供畫面注解的功能.學(xué)生部分則通過Applet界面執(zhí)行接受教師端廣播畫面的功能.具體功能如下:?

1.同步多媒體的播放?

使用SMIL語言定義每個(gè)媒體文件的版面配置,文檔來源,播放的起止時(shí)間和同步關(guān)系.由于媒體信息并不存在于SMIL文件中,可以獨(dú)立存放在媒體伺服器中,所以客戶端能夠很快的取得SMIL文件提供的信息,由SMIL Parser分析SMIL展示結(jié)構(gòu)后立即向媒體伺服器發(fā)出播放媒體文件的請求.假如突然改變媒體的播放順序,也只需編輯SMIL文件即可,不需要重新整合.?

2.即時(shí)多媒體傳輸?

由于聲音,影像文件相當(dāng)龐大,如果以TCP協(xié)議傳輸將無法滿足即時(shí)需求,而且會(huì)增加網(wǎng)絡(luò)的負(fù)載,因此本系統(tǒng)將透過JMF/RTP建立即時(shí)多媒體的流傳輸能力,在網(wǎng)絡(luò)上做到同步傳輸.?

3.提供Application和Applet兩種版本?

通過java Applet方式,在任何支持java的瀏覽器中即可使用本系統(tǒng)來學(xué)習(xí).但由于Applet在安全性上的限制,所以我們又另外開發(fā)一個(gè)java Application版本,使本系統(tǒng)的功能更加完善.?

設(shè)計(jì)實(shí)現(xiàn)?

1.SMIL文件的制作?

僅以一個(gè)教學(xué)文件的制作為例說明制作過程,以下是部分源文件:?

?

………?

?

?

以上源程序中各種媒體文件的關(guān)系如下圖所示:?

圖3.各種媒體信息在時(shí)間軸上的關(guān)系?

2.?系統(tǒng)設(shè)計(jì)?

整個(gè)系統(tǒng)的設(shè)計(jì)分為客戶端和服務(wù)器端兩部分,系統(tǒng)架構(gòu)流程如圖4所示:?

I.客戶端?

客戶端主要由html頁面和嵌入式的Applet實(shí)現(xiàn),其主要作用就是瀏覽網(wǎng)頁和收看媒體節(jié)目.客戶首先登錄到教學(xué)系統(tǒng),在進(jìn)入主頁面之前,首先詢問用戶是否裝有JMF客戶端軟件包.如果沒有安裝,則提示用戶從系統(tǒng)提供的目錄下下載并安裝.JMF軟件檢測通過后,就進(jìn)入虛擬教室主頁面.這時(shí)可以有兩種選擇:?

(1).客戶點(diǎn)擊一個(gè)媒體節(jié)目的鏈接后,服務(wù)器端就會(huì)將用戶所點(diǎn)播的節(jié)目名稱作為參數(shù)傳遞給服務(wù)器,服務(wù)器啟動(dòng)一個(gè)新線程并建立一個(gè)RTP會(huì)話來提供服務(wù),開始傳播媒體流;與此同時(shí),客戶端瀏覽器會(huì)自動(dòng)下載并運(yùn)行一個(gè)用于媒體流播放的Applet程序PlayerApplet,它包括播放器和播放節(jié)目的控制面板.當(dāng)PlayerApplet啟動(dòng)后就會(huì)和服務(wù)器進(jìn)行通信,建立RTP會(huì)話,開始從服務(wù)器端接收媒體數(shù)據(jù)并在播放器上播放.用戶可以收看并控制節(jié)目的播放,服務(wù)器端運(yùn)行的是Java服務(wù)程序,PlayerApplet和媒體流傳輸服務(wù)程序通過Socket連接來傳輸控制信息,用RTP連接來進(jìn)行媒體流傳輸;?

(2).點(diǎn)擊觀看實(shí)時(shí)講課后,瀏覽器就會(huì)下載并運(yùn)行PlayerApplet,其功能基本同上,不過它接收的是服務(wù)器端傳來的老師講課的實(shí)時(shí)媒體流.若此時(shí)沒有老師講課,則它會(huì)從服務(wù)器端得到相應(yīng)的提示信息.

II.服務(wù)器端?

服務(wù)器端實(shí)現(xiàn)以下幾個(gè)部分的功能.?

(1).網(wǎng)絡(luò)基本服務(wù):主要是對客戶的網(wǎng)絡(luò)請求作出響應(yīng)并提供基本服務(wù),例如客戶端請求的頁面顯示,Applet服務(wù)等.?

(2).媒體傳輸服務(wù):主要是對已存儲媒體和實(shí)時(shí)媒體流的傳輸,其功能由java程序來完成.當(dāng)一個(gè)客戶端瀏覽器請求播放存儲節(jié)目時(shí),它就啟動(dòng)一個(gè)線程為用戶服務(wù).利用客戶端傳來的參數(shù)中所指定的節(jié)目名稱,該線程就到媒體存儲服務(wù)器上尋找媒體,并用RTP協(xié)議進(jìn)行傳輸把媒體流發(fā)送給客戶,如果有教師登錄并進(jìn)行講課時(shí),它就從媒體制作控制服務(wù)器上接收實(shí)時(shí)媒體流,并將其廣播到網(wǎng)絡(luò)上去,多個(gè)客戶就可以接收媒體流,它要建立RTP會(huì)話并用SessionManager來管理會(huì)話.?

(3).媒體制作控制服務(wù):它是一個(gè)java程序,一方面可以允許教師登錄,把教師的講課內(nèi)容錄制并轉(zhuǎn)換成媒體流進(jìn)行廣播傳輸;另一方面,系統(tǒng)管理員還可以用它來進(jìn)行媒體節(jié)目制作,媒體格式的轉(zhuǎn)換等工作。?

幾點(diǎn)體會(huì)?

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

2.CCD的傳輸格式為Stream,當(dāng)復(fù)制多份給客戶端時(shí),服務(wù)器無法承擔(dān),而且音頻和視頻同步的實(shí)現(xiàn)相當(dāng)困難.?

3.同時(shí)以RTP方式傳到客戶端的音視頻信息不一定會(huì)同步,需要程序做同步控制?

4.Java Applet安全性的問題?

5.畫面同步部分,僅傳送控制信號,而不是傳送整個(gè)頁面,以加快畫面顯示速度.?

結(jié)? 束? 語?

本課題主要是探討在分布式環(huán)境下開發(fā)一套互動(dòng)式的多媒體遠(yuǎn)程教學(xué)系統(tǒng),讓這套系統(tǒng)可以在目前的Internet上實(shí)際執(zhí)行.?

經(jīng)過本專題制作的全過程,我更深入的理解了在線媒體播放的技術(shù),流媒體傳輸技術(shù),同步控制的方法和互動(dòng)性功能,讓多媒體遠(yuǎn)程教學(xué)成為網(wǎng)絡(luò)上重要的一項(xiàng)服務(wù)功能.?

參考文獻(xiàn):?

1.王峰等編著.Java多媒體程序設(shè)計(jì).清華大學(xué)出版社,?

2.www.liumeiti.com,流媒體中文網(wǎng)?

3. java.sun.com?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。