共用方式為


使用非平方圖元撰寫資料流程

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows Media Format 11 SDK。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

有兩種方式可以建立具有非方形圖元的視訊串流,這些資料流程會在Windows 媒體播放機中正確顯示。 第一個技術涉及在檔案標頭中設定資料流程層級屬性。 第二個技巧涉及將資料單位延伸新增至設定檔中的資料流程,然後在寫入的每個範例中設定其值。

若要使用資料流程層級標頭屬性來設定圖元外觀比例

  1. 設定寫入器物件。 如需詳細資訊,請參閱 撰寫 ASF 檔案
  2. 建立或載入具有一或多個視訊串流的設定檔。 如需詳細資訊,請參閱 搭配寫入器使用設定檔
  3. 呼叫 IWMWriter::SetProfile。 (一律呼叫此方法,再設定任何標頭屬性。)
  4. 呼叫 QueryInterface 以取得 IWMHeaderInfo3 介面,並呼叫 AddAttribute 兩次,將 AspectRatioXAspectRatioY 新增為視訊串流的資料流程層級屬性。 這些屬性是 DWORD 值。
  5. 寫入檔案。

若要使用資料單位延伸模組來設定圖元外觀比例

在撰寫之前:

  1. 設定寫入器物件。 如需詳細資訊,請參閱 撰寫 ASF 檔案
  2. 建立或載入具有一或多個視訊串流的設定檔。 如需詳細資訊,請參閱 搭配寫入器使用設定檔
  3. 針對設定檔中任何媒體類型) 的每個資料流程 (,請呼叫 IWMStreamConfig::SetStreamName 來指定您選擇的唯一名稱。 請勿提供兩個相同名稱的資料流程。
  4. 在視訊串流上使用 IWMStreamConfig2::AddDataUnitExtension 來新增圖元外觀比例的資料單位延伸模組。
  5. 呼叫 IWMWriter::SetProfile
  6. 寫入檔案。

撰寫時:

  • 針對每個範例,呼叫 INSSBuffer3::SetProperty ,並指定WM_SampleExtensionGUID_PixelAspectRatio屬性以及正確的值。 外觀比例值會寫入為兩個串連的兩位數值。 例如,16:9 會寫入為 1609 或0x0649。 這一律為 2 位元組值。

使用非方形圖元讀取和寫入視訊串流