共用方式為


媒體基礎中的編碼概觀

本主題概述 Microsoft Media Foundation 中提供的檔案編碼 API。

詞彙

編碼 是涵蓋數個不同程式的一般詞彙:

  1. 將音訊或視訊資料流程編碼成壓縮格式。 例如,將視訊串流編碼為 H.264 視訊。
  2. 多工處理 (「多工處理」) 一或多個資料流程到單一位元組資料流程。 一般而言,傳入資料流程會先進行編碼。 此步驟可能牽涉到封包化編碼資料流程。
  3. 將多工位元組資料流程寫入檔案,例如 MP4 或進階系統格式 (ASF) 檔案。 或者,可以透過網路傳送多工資料流程。

下圖顯示這三個程式:

顯示編碼和多工處理常式的圖表

此程式的變化包括轉碼和重新設計:

  • 轉碼 表示解碼現有的檔案、重新編碼資料流程,以及重新多工處理編碼資料流程。 轉碼可能會完成,以將檔案從一種編碼類型轉換成另一種編碼類型;例如,將 H.264 視訊轉換成 Windows Media Video (WMV) 。 也可以變更編碼的位元速率;視訊畫面大小;畫面播放速率;或其他格式參數。
  • Remultiplexingremuxing 表示清除檔案並重新多工處理資料流程,而不需要解碼/編碼步驟。 若要變更音訊/視訊封包的多工處理方式、移除資料流程,或合併來自兩個不同來源檔案的資料流程,可能會這麼做。
  • 轉碼 是轉碼的特殊案例,其中位元速率會變更,而不需要變更壓縮類型。 例如,您可以將高位元速率檔案轉換成較低的位元速率。 將媒體內容從電腦同步處理到可攜式裝置時,可能會使用轉譯的一般案例。 如果可攜式裝置不支援高位元速率,檔案可能會在複製到可攜式裝置之前進行轉譯。

下列區塊圖顯示轉碼程式。

顯示轉碼程式的圖表

下列區塊圖顯示 remuxing 程式。

顯示 remuxing 程式的圖表

本檔有時會使用 「編碼」 一詞來包含轉碼和 remuxing。 區分它們很重要時,檔會記下差異。

另請參閱 :媒體基礎:基本概念

媒體基礎編碼架構

在媒體基礎架構的最低層,會使用下列類型的元件進行編碼:

  • 針對轉碼, 媒體來源 會用來解除來源檔案的複雜度。
  • 針對編碼程式, 媒體基礎轉換 是用來解碼和編碼資料流程。
  • 針對多工處理常式, 媒體接收 會用來對資料流程進行多工處理,並將多工資料流程寫入檔案或網路。

下圖顯示轉碼案例中這些元件之間的資料流程:

顯示轉碼中使用的元件圖表

大部分的應用程式都不會直接使用這些元件。 相反地,應用程式會使用管理這些較低層級元件的較高層級 API。 媒體基礎提供兩個較高層級的 API 進行編碼:

媒體會話

媒體會話提供端對端管線,可將資料從媒體來源移至編解碼器,最後移至媒體接收。 應用程式會控制媒體會話,並從媒體會話接收狀態事件。

來源讀取器 加上 接收寫入器

來源讀取器會包裝媒體來源,並選擇性地包裝解碼器。 它會傳遞應用程式的編碼或解碼範例。 接收寫入器會包裝媒體接收,並選擇性地包裝編碼器。 應用程式會將範例傳遞至接收寫入器。

下圖顯示媒體會話:

顯示媒體會話如何執行轉碼的圖表

Transcode API (藍色網底方塊) 是 Windows 7 中引進的一組 API,可讓您更輕鬆地設定媒體會話進行編碼。

下圖顯示來源讀取器和接收寫入器:

顯示使用來源讀取器和接收寫入器轉碼的圖表

編碼與檔案編寫

媒體基礎程式設計:基本概念