程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JMF介紹之基於時間的媒體

JMF介紹之基於時間的媒體

編輯:關於JAVA

1.基於時間的媒體(time-based media)

任何數據隨時間的變化而變化的可被定義為基於時間的媒體。音頻剪輯,MIDI序列,視頻剪輯,動畫都是基於時間的媒體形式。

下圖從基本的數據處理過程模式角度說明了基於時間的媒體的主要特點和使用過程:

2.流媒體(streaming media)

基於時間的媒體的一個主要特點是它必須被實時的傳輸和處理。一旦這個媒體數據流打開,它的接收(receiving)和顯示(presenting)數據必須要基於時間。正因為此,基於時間的媒體通常被定義為流媒體(streaming media)。

2.1內容類型(content type)

媒體存儲的格式稱為它的內容類型(content type)。QuickTime, MPEG, WAV 都是內容類型的一種。

2.2媒體流(media streams)

媒體流是指從本地文件,網絡或相機,麥克中得到的媒體數據。媒體流通常包含多個數據通道,稱其為道(tracks)。例如,一個Quicktime文件可能包含一個音頻道和一個視頻道。包含多道的媒體流通常被稱為復合的(multiplexed)或合成的(complex)媒體流。分離(Demultiplexing)是指從一個合成的媒體流中提取單個道的過程。

一個道的類型(type)識別了它所包含的數據的類型,比如是音頻的或視頻的。一個道的格式(format)定義了它所包含的數據結構。

一個媒體流可以通過它的存儲位置和用於訪問它的協議來識別。例如,可以使用URL來定位一個本地的或非本地的QuickTime文件。如果它是本地的,可以通過文件協議(FILE protocol)訪問它。如果它在一個Web服務器上,可以通過HTTP協議(HTTP protocol)訪問它。當無法使用URL來定位媒體流時,可以使用一個媒體定位器(media locator)來識別媒體流的位置。

以下是基於傳輸方式的媒體流分類:

lPull—由客戶端發起並控制的數據傳輸。超文本傳輸協議和文件傳輸協議都是pull協議。

lPush—由服務器端發起並控制的數據傳輸。實時傳輸協議(RTP)是一個用於流媒體的push協議。

2.3常用媒體格式(formats)

下表列出了常用的音頻(Table2)和視頻(Table1)格式。在選用某種格式時,我們應該考慮對媒體質量的要求、對CPU的要求和對網絡傳輸帶寬的要求。

Format Content Type Quality CPU Requirements Bandwidth Requirements Cinepak AVI

QuickTime Medium Low High MPEG-1 MPEG High High High H.261 AVI

RTP Low Medium Medium H.263 QuickTime

AVI

RTP Medium Medium Low JPEG QuickTime

AVI

RTP High High High Indeo QuickTime AVI Medium Medium Medium Table 1:常用視頻格式

Format Content Type Quality CPU Requirements Bandwidth Requirements PCM AVI

QuickTime

WAV High Low High Mu-Law AVI

QuickTime

WAV

RTP Low Low High ADPCM

(DVI,

IMA4) AVI

QuickTime

WAV

RTP Medium Medium Medium MPEG-1 MPEG High High High MPEG

Layer3 MPEG High High Medium GSM WAV

RTP Low Low Low G.723.1 WAV

RTP Medium Medium Low

Table 2: 常用的音頻格式.

3.媒體播放(media presentation)

大部分基於時間的媒體都是音頻或視頻數據,它可以通過輸出設備如揚聲器(speaker)和監示器(monitor)輸出。這些設備都是最常用的用於媒體數據輸出的目標地(destination)。媒體數據也可以被傳輸到一些其它目標地,例如,保存到文件或傳輸到網絡。一個用於媒體數據輸出的目標地有時被稱為數據匯集點(data sink)。

3.1播放控制(presentation contrals)

當輸出一個媒體流時,用戶可以對其進行一般的控制操作。如停止、快進、重放等。

3.2  緩沖期(latency)

在大多數情況下,特別是在播放網絡上的媒體數據時,播放不能立即開始。在播放前的這段時間被稱為緩沖期(start latency)。多媒體的播放通常是合成多種類型(types)的媒體流將其同步播放。當播放多條同步的媒體數據流時,必須考慮每條媒體流的緩沖期,否則會出現多條媒體流在重放(playback)時不同步的情況。

4.媒體處理(media processing)

在大多數情況下,媒體流的數據在播放前必須經過處理。通常在播放前要經過一系列的處理操作:

l如果媒體流是復合的,必須提取出所有的道(tracks)。

l如果這些道(tracks)是壓縮的,他們必須被解碼。

l如果必要,還要將這些道(tracks)轉換為其它格式(format)。

l如果必要,還需要對這些已經解碼的道(tracks)進行渲染。

然後這些道才能被傳遞到相應的輸出設備。如果是存儲媒體流,則處理過程會有所不同。例如,如果你想從攝像機捕獲音頻和視頻將其存儲到一個文件,處理過程如下:

l捕獲音頻和視頻道(tracks)。

l對這些原始數據進行必要的渲染。

l每條道(tracks)被解碼。

l將這些經過壓縮的(compressed)道合成為一條單一的媒體流。

l將這條合成的媒體流存儲到文件。

4.1分離器與復用器(demultiplexers and multiplexers)

分離器的作用是從一個合成的媒體流中分離出每條道的媒體數據。復用器的作用是將單獨的道的媒體數據合成為一條復合的媒體流。

4.2編解碼器(codecs)

一個編解碼器的作用是對媒體數據進行壓縮和解壓縮。當一個道被編碼,它將被壓縮成一個易於存儲和傳輸的格式(format);當它被解碼,它將被解壓成一個易於播放的格式(format)。

每種編解碼器都有其相應的輸入格式和輸出格式。

4.3渲染器(effect filters)

渲染器的作用是產生特殊的效果,如模糊和回聲。

渲染器通常可分為預處理效果和後處理效果渲染器。這主要由它們是在編解碼過程前後進行決定。原則上,渲染應當是對未被壓縮的(原始)數據進行。

4.4顯示器(renderers)

顯示器是指宏觀上的所有播放設備。對於音頻,播放設備一般是指計算機的聲卡,由它傳遞聲音到揚聲器(speakers)。對於視頻,播放設備一般是指計算機的監視器(monitor)。

5.媒體捕獲(media capture)

基於時間的媒體可以捕獲自一個實時的數據源,再對其進行處理(processing)和重放(playback)。例如可以通過麥克風捕獲音頻數據。捕獲可以被看作是標准媒體處理模式的輸入階段。

一個捕獲設備可能會捕獲到多條媒體流。例如,一個攝像機可能會捕獲到音頻和視頻。這些媒體流可能會被單獨的捕獲和處理或者合成為一條單一的流。合成流中會同時包含音頻道(track)和視頻道(track)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved