共用方式為


媒體基礎架構概觀

本主題描述 Microsoft Media Foundation 的一般設計。 如需使用媒體基礎進行特定程式設計工作的詳細資訊,請參閱 Media Foundation 程式設計手冊

下圖顯示媒體基礎架構的高階檢視。

圖表,顯示媒體基礎架構的高階檢視。

媒體基礎提供兩個不同的程序設計模型。 圖表左側顯示的第一個模型會使用媒體數據的端對端管線。 例如,應用程式會藉由提供要播放的檔案URL,然後呼叫方法來控制串流,以初始化管線。 在第二個模型中,如圖右側所示,應用程式會從來源提取數據,或將它推送至目的地(或兩者)。 如果您需要處理數據,此模型特別有用,因為應用程式可以直接存取數據流。

基本類型與平臺

從圖表底部開始,原始物件 是在媒體基礎 API 中使用的輔助物件。

  • 屬性 是將資訊儲存在物件內的泛型方式,做為索引鍵/值組的清單。
  • 媒體類型 描述媒體數據流的格式。
  • 媒體緩衝區 保存媒體數據的區塊,例如視訊畫面和音訊範例,並用來在對象之間傳輸數據。
  • 媒體樣本 是媒體緩衝區的容器。 它們也會包含緩衝區的相關元數據,例如時間戳。

Media Foundation 平臺 API 提供媒體基礎管線所使用的一些核心功能,例如異步回呼和工作佇列。 某些應用程式可能需要直接呼叫這些 API,此外,如果您實作 Media Foundation 的自定義來源、轉換或 sink,則需要它們。

媒體管線

媒體管線包含三種類型的物件,可產生或處理媒體數據:

  • 媒體來源 將數據導入管線。 媒體來源可能會從本機檔案取得數據,例如視訊檔案;從網路數據流;或從硬體擷取裝置。
  • Media Foundation Transforms (MFT) 處理來自數據流的數據。 編碼器和譯碼器會實現為 MFT。
  • 媒體接收器 消耗數據,例如,藉由在顯示器上顯示視訊、播放音訊,或將數據寫入媒體檔案。

第三方可以實作自己的自定義來源、匯入器和 MFT(媒體檔案轉換)模組,例如,若要支援新的媒體檔案格式。

媒體會話 會透過管線控制數據流,並處理品質控制、音訊/視訊同步處理,以及回應格式變更等工作。

來源讀取器和接收寫入器

來源讀取器接收寫入器 提供使用基本媒體基礎元件(媒體來源、轉換和媒體接收)的替代方式。 來源讀取器裝載媒體來源和零個或多個解碼器,而接收端寫入器則裝載媒體接收端和零或多個編碼器。 您可以使用來源讀取器從媒體來源取得壓縮或解壓縮的數據,並使用接收端寫入器編碼數據,然後將數據傳送至媒體接收端。

注意

來源讀取器和接收寫入器可在 Windows 7 中使用。

 

此程式設計模型可讓應用程式更充分掌控數據流,也讓應用程式能夠從來源直接存取數據。

媒體基礎知識:基本概念

媒體基礎架構