使用非平方圖元撰寫資料流程
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows Media Format 11 SDK。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
有兩種方式可以建立具有非方形圖元的視訊串流,這些資料流程會在Windows 媒體播放機中正確顯示。 第一個技術涉及在檔案標頭中設定資料流程層級屬性。 第二個技巧涉及將資料單位延伸新增至設定檔中的資料流程,然後在寫入的每個範例中設定其值。
若要使用資料流程層級標頭屬性來設定圖元外觀比例
- 設定寫入器物件。 如需詳細資訊,請參閱 撰寫 ASF 檔案。
- 建立或載入具有一或多個視訊串流的設定檔。 如需詳細資訊,請參閱 搭配寫入器使用設定檔。
- 呼叫 IWMWriter::SetProfile。 (一律呼叫此方法,再設定任何標頭屬性。)
- 呼叫 QueryInterface 以取得 IWMHeaderInfo3 介面,並呼叫 AddAttribute 兩次,將 AspectRatioX 和 AspectRatioY 新增為視訊串流的資料流程層級屬性。 這些屬性是 DWORD 值。
- 寫入檔案。
若要使用資料單位延伸模組來設定圖元外觀比例
在撰寫之前:
- 設定寫入器物件。 如需詳細資訊,請參閱 撰寫 ASF 檔案。
- 建立或載入具有一或多個視訊串流的設定檔。 如需詳細資訊,請參閱 搭配寫入器使用設定檔。
- 針對設定檔中任何媒體類型) 的每個資料流程 (,請呼叫 IWMStreamConfig::SetStreamName 來指定您選擇的唯一名稱。 請勿提供兩個相同名稱的資料流程。
- 在視訊串流上使用 IWMStreamConfig2::AddDataUnitExtension 來新增圖元外觀比例的資料單位延伸模組。
- 呼叫 IWMWriter::SetProfile。
- 寫入檔案。
撰寫時:
- 針對每個範例,呼叫 INSSBuffer3::SetProperty ,並指定WM_SampleExtensionGUID_PixelAspectRatio屬性以及正確的值。 外觀比例值會寫入為兩個串連的兩位數值。 例如,16:9 會寫入為 1609 或0x0649。 這一律為 2 位元組值。
相關主題