AVI Mux 篩選器
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
AVI Mux 篩選條件接受多個輸入數據流,並將其交錯成 AVI 格式。 篩選條件會針對每個輸入數據流使用不同的輸入針腳,以及AVI數據流的一個輸出針腳。
視訊擷取或撰寫應用程式可以使用此篩選器,以AVI格式將檔案儲存至磁碟。 篩選條件通常會連線到 檔案寫入器 篩選,但它可以連線到輸入針腳支援 IStream 的任何篩選,IMemInputPin 介面。
標籤 | 價值 |
---|---|
篩選介面 | IBaseFilter、IConfigAviMux、IConfigInterleaving、IMediaSeeking、IPersistMediaPropertyBag、ISpecifyPropertyPages |
輸入釘選媒體類型 | 任何對應至舊式FOURCC或MEDIATYPE_AUXLine21Data的主要類型。 (如需詳細資訊,請參閱 FOURCCMap 類別。)
|
輸入釘選介面 | IAMStreamControl、IMemInputPin、IPin、IPropertyBag、IQualityControl |
輸出釘選媒體類型 | MEDIATYPE_Stream,MEDIASUBTYPE_Avi |
輸出釘選介面 | IPin、IQualityControl |
篩選 CLSID | CLSID_AviDest |
屬性頁 CLSID | CLSID_AviMuxProptyPage,CLSID_AviMuxProptyPage1 |
可執行 | qcap.dll |
優點 | MERIT_DO_NOT_USE |
篩選類別目錄 | CLSID_LegacyAmFilterCategory |
言論
下列備註說明 AVI Mux 篩選器功能的各個層面。
引 腳
建立 AVI Mux 篩選器時,其具有一個輸入針腳。 當每個輸入針腳連接時,篩選條件會建立新的輸入針腳。
數據流屬性
輸入針腳支援 IPropertyBag 介面,以在個別數據流上設定屬性。 目前已定義下列屬性:
財產 | 描述 |
---|---|
名字 | 數據流的名稱。 這個屬性會寫入為 'strn' 區塊。 |
如果篩選正在執行或暫停,IPropertyBag::Write 方法會傳回VFW_E_WRONG_STATE。
幀速率
如果上游篩選器未在 AvgTimePerFrame 中指定幀速率,VIDEOINFOHEADER 結構的成員,AVI Mux 會使用第一個視訊畫面格上的時間戳。 AVI 檔案格式不支援可變幀速率。
已卸除的框架
AVI Mux 篩選會根據每個樣本的媒體時間、如果有的話,或範例的時間戳來計算捨棄的畫面格。 它會為每個卸除的框架寫入長度為零的索引專案。
IMediaSeeking
AVI Mux 篩選器會實作 IMediaSeeking 介面,如下所示:
- GetCurrentPosition 方法會傳回多任務處理目前的進度。 如果您要轉碼檔案(比即時慢),這個值會比 Filter Graph Manager 傳回的值更精確。 如需詳細資訊,請參閱 GetCurrentPosition 參考頁面的一節。
- GetDuration 方法會查詢每個上游篩選,並傳回最長數據流的持續時間。 如果其中任何一個篩選條件失敗,GetDuration 呼叫 (或不支援 IMediaSeeking),AVI Mux 會傳回失敗碼,並填入 pDuration 參數,並填入找到最長持續時間的 pDuration 參數。 不過,在此情況下,pDuration 的值不一定是最長輸入數據流的長度。
- AVI Mux 不會實作 GetStopPosition、GetPositions、GetAvailable、GetRate 或 GetPreroll 方法;它也不會實作任何 Set* 方法來尋找。
AVI 2.0 檔案格式延伸模組
DirectShow 目前支援下列 AVI 2.0 檔案格式擴展名:
- 增加 AVI 檔案大小 (大於 1 GB)
- 階層式索引編製
如需詳細資訊,請參閱 OpenDML AVI M-JPEG 檔案格式小組委員會所發佈的「OpenDML AVI 檔格式延伸模組」1.02 版。
相關主題