共用方式為


設定數據流

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

配置檔中唯一需要的是至少一個數據流。 其他選項提供更進階功能的存取權,但至少只要有一個數據流,您就可以建立 ASF 檔案。 至關重要的是,您必須瞭解如何在建立複雜配置檔之前設定資料流。

為了配置檔的目的,數據流可以分成兩種類型:使用 Windows Media 編解碼器壓縮的數據流,以及未使用任何編解碼器處理的任意數據流。 音訊串流和視訊串流是使用 Windows 媒體編解碼器的類型。 當然,串流可以包含使用第三方編解碼器壓縮的音訊或視訊,但設定這類數據流的程式是特殊案例。 如需詳細資訊,請參閱 使用第三方編解碼器建立 ASF 檔案

下列清單摘要說明設定數據流的程式。

  1. 取得數據流的組態物件。
    • 如果您要使用其中一個 Windows Media 編解碼器建立數據流,則必須使用 IWMCodecInfo3方法,以編解碼器格式取得數據流組態物件。
    • 如果數據流是任意類型,請使用 IWMProfile::CreateNewStream取得空數據流組態物件。
  2. 設定數據流以符合您的需求。
    • 所有類型的數據流都應該指派名稱、連接名稱和數據流編號。
    • 使用 Windows 媒體編解碼器的串流應該只以編解碼器格式的預先定義方式改變。 針對音訊串流,應該只變更雙通道可變比特率(VBR)設定。 視訊串流必須使用所需的畫面屬性進行設定。
    • 任意數據流依類型具有不同的組態需求。 所有都需要比特率和緩衝區視窗。
  3. 呼叫 IWMProfile::AddStream,將數據流新增至配置檔。

所有數據流都是使用數據流組態對象來定義。 數據流組態物件的主要介面是 IWMStreamConfig,其提供設定數據流基本設定的方法,例如數據流編號、比特率等等。 IWMStreamConfig 是由較新的介面繼承,IWMStreamConfig2IWMStreamConfig3。 如同所有編號介面修訂,您應該一律使用 QueryInterface 方法來擷取最新版本。

數據流中的大部分設定都是透過 IWMMediaProps存取。 這些設定會封裝在 WM_MEDIA_TYPE 結構中。 針對音訊和視訊,WM_MEDIA_TYPE 結構指向另一個結構,其中包含媒體類型特有的進一步資訊。 這個次要結構通常是音訊的 WAVEFORMATEX 和視訊的 WMVIDEOINFOHEADER。 此外,視訊串流具有第三個結構,BITMAPINFOHEADER,其描述個別視訊畫面的特性。 BITMAPINFOHEADER 是常見的結構,而且可以在平臺 SDK 的 [圖形裝置介面][GDI] 區段中找到。

下列各節說明如何設定數據流。

部分 描述
所有數據流通用的配置 描述所有類型的數據流通用的基本數據流組態。
從編解碼器取得串流組態資訊 描述如何從編解碼器取得數據流組態資訊,以確保使用Windows 媒體音訊和視訊編解碼器正確設定數據流。
設定音訊串流 描述如何設定音訊串流。
設定視訊串流 描述如何設定視訊串流。
配置視訊串流以優化搜尋效能 描述如何設定那些在搜尋效率上具有重要性的視訊串流。
設定螢幕擷取串流 描述如何設定螢幕擷取的視訊串流。
設定影像數據流 描述如何設定影像數據流。
使用未壓縮的音訊和視訊串流 描述如何設定未壓縮的音訊或視訊串流。
設定任意數據流類型 描述如何設定數據流以使用預先定義的任意數據流類型。
設定 VBR 串流 描述如何設定數據流以使用可變比特率編碼 (VBR)。
設定資料單元擴充功能 描述如何設定數據流,以便在寫入檔案時附加數據單位延伸模組。
重複使用串流配置 描述您可以從現有設定檔使用串流組態物件來建立新配置檔的方式。

 

輸入、數據流和輸出

使用配置檔