AVI Mux 篩選器
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對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 Class.)
|
輸入針腳介面 | 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 介面,以在個別資料流程上設定屬性。 目前已定義下列屬性:
屬性 | Description |
---|---|
NAME | 資料流的名稱。 這個屬性會寫入為 'strn' 區塊。 |
如果篩選正在執行或暫停,IPropertyBag::Write 方法會傳回VFW_E_WRONG_STATE。
畫面播放速率
如果上游篩選未在VIDEOINFOHEADER結構的AvgTimePerFrame成員中指定畫面播放速率,AVI Mux 會使用第一個視訊畫面上的時間戳記。 AVI 檔案格式不支援可變畫面播放速率。
卸載的框架
AVI Mux 篩選會根據每個樣本的媒體時間計算捨棄的畫面格,如果有的話,或者樣本的時間戳記。 它會為每個卸載的框架寫入長度為零的索引項目目。
IMediaSeeking
AVI Mux 篩選器會實作 IMediaSeeking 介面,如下所示:
- GetCurrentPosition方法會傳回多工處理目前的進度。 如果您要轉碼檔案 (比即時) 慢,這個值會比篩選圖形管理員傳回的值更精確。 如需詳細資訊,請參閱 GetCurrentPosition 參考頁面的一節。
- GetDuration方法會查詢每個上游篩選,並傳回最長資料流程的持續時間。 如果其中任何一個篩選失敗,GetDuration 呼叫 (或不支援 IMediaSeeking) ,AVI Mux 會傳回失敗碼,並在找到最長持續時間的 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 版。
相關主題