引?? 言?
由于帶寬的限制,目前在網絡上提供多媒體資料傳輸的應用還得不到所需的品質保證,市面上也沒有一個非常完整的開放式多媒體傳輸協定和播放環境.然而隨著網絡技術的進步和帶寬的逐步增加,電子商務,遠程教學,視頻會議等都將需要一個即時互動的多媒體播放系統.?
要在網絡上支持多媒體即時和同步的特性,需要以即時資料流(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多媒體程序設計.清華大學出版社,?
3. java.sun.com?