來源讀取器

來源讀取器是使用 媒體會話 和 Microsoft Media Foundation 管線來處理媒體資料的替代方案。

為何使用來源讀取器?

媒體基礎提供已針對播放優化的管線。 管線是端對端,這表示它會處理來自來源 (的資料流程,例如視訊檔案) 到目的地 (,例如圖形顯示) 。 不過,如果您想要在資料通過管線時讀取或修改資料,則必須撰寫自訂外掛程式。 這需要對媒體基礎管線有相當深入的知識。 對於某些工作,建立新的外掛程式是太多額外負荷。 當您想要從來源取得原始資料,而不需要整個管線的額外負荷時,來源讀取器是針對這種類型的情況所設計。

在內部,來源讀取器會保存媒體來源的指標。 媒體來源是 Media Foundation 物件,可從外部來源產生媒體資料,例如媒體檔案或視訊擷取裝置。 來源讀取器會管理媒體來源的所有方法呼叫。 (如需媒體來源的詳細資訊,請參閱 媒體來源.)

如果媒體來源提供壓縮的資料,您可以使用來源讀取器來解碼資料。 在此情況下,來源讀取器會載入正確的解碼器,並管理媒體來源與解碼器之間的資料流程。 來源讀取器也可以執行一些有限的視訊處理:從 YUV 到 RGB-32 的色彩轉換,以及軟體反交錯,雖然不建議進行即時視訊轉譯這些作業。 下圖說明此程式。

來源讀取器的圖表

來源讀取器不會將資料傳送至目的地;應用程式會取用資料。 例如,來源讀取器可以讀取視訊檔案,但不會將視訊轉譯到畫面。 此外,來源讀取器不會管理簡報時鐘、處理計時問題,或與音訊同步處理視訊。

請考慮在下列情況下使用來源讀取器:

  • 您想要從媒體檔案取得資料,而不必擔心基礎檔案結構。
  • 您想要從音訊或視訊擷取裝置取得資料。
  • 資料處理工作不區分時間,或您不需要簡報時鐘。
  • 您已經有不是以媒體基礎為基礎的媒體管線,而且您想要將媒體基礎媒體來源併入您自己的管線。

下列情況不建議使用來源讀取器:

  • 針對受保護的內容。 來源讀取器不支援 DRM) (數位版權管理。
  • 如果您關心基礎檔案結構的詳細資料。 來源讀取器會隱藏該類型的詳細資料。

本節內容

主題 描述
使用來源讀取器來處理媒體資料
本主題描述如何使用來源讀取器來處理媒體資料。
在非同步模式中使用來源讀取器
本主題描述如何在非同步模式中使用來源讀取器。
教學課程:解碼音訊
本教學課程示範如何使用來源讀取器將音訊從媒體檔案解碼,並將音訊寫入 WAVE 檔案。

 

媒體基礎架構

媒體基礎程式設計指南

IMFSourceReader