JMF(Java Media Framework)是Sun 公司提出的Java 媒體架構。它是對應Java 2平台標準版(J2SE)的一種可選用的應用編程介面(API)。JMF的原始碼通過SCSL(Sun 社團原始碼許可模式)發布這一強大的媒體工具包,可以在任何版本(1.1.x 及以上版本)的Java平台上的運行。
JMF2.1.1技術提供了先進的ApsaraVideo for Media Processing能力,從而擴充了Java 平台的功能。JMF所提供的多媒體功能如下:
l可以在Java Applet 和應用程式中播放各種媒體檔案。它提供了對各種主要媒體形式和編碼的支援,如JPEG、H.263、MP3、Macromedias Flash。JMF 2.1.1 還支援多種媒體類型如Quicktime、MOV、Microsoft AVI和MPEG-1。
l在互連網上傳輸音頻和視頻資料流。
l可以利用攝像機一類的裝置截取音頻和視頻並儲存為多媒體檔案。
l處理多媒體檔案轉換檔格式。
l在互連網上廣播音頻和視頻資料。
1.JMF基本構架
JMF的兩層架構:
(1) 相對上層的負責多媒體檔案的控制,使用和處理,並支援網路資源和識別採集裝置等額外控制功能;
(2) 相對下層不僅提供轉碼器,渲染器,還提供plug-in架構來直接存取多媒體檔案使JMF能更輕易的被延伸和定製;
JMF的架構圖:
圖1 JMF架構圖
2.JMF的運作模式
圖2根據VCR的運作模式來對比JMF運作過程,我們可以發現JMF與真實世界中的VCR運作模式相似。整個過程如同是VCR提供了一個熟悉的構造模型來錄影(音)、處理、以及呈現基於時間的媒體(time-based media)。當你使用VCR播放一個電影時,你是以錄影帶的方式提供VCR一個媒體流(media stream)。VCR將之讀入並分析、解譯錄影帶上的資料,並把適當的訊號送到使用者的電視和音響。JMF也是使用這個同樣的模型架構。一個資料來源(data source)會將媒體流(media stream)封裝起來,就有如錄影帶一般。而一個播放器(player)會提供處理以及控制,類似VCR所提供的控制機制。使用JMF播放、和捕捉影音則需要適當的輸入輸出裝置如麥克風、照相機、音響、以及螢幕等等。
圖2 VCR運作模式