使用Two-Pass編碼 (Microsoft Media Foundation)

雙階段編碼可用於常數位元速率 (CBR) ,以及使用一些 Windows 媒體編解碼器進行 VBR 編碼 (VBR) 編碼。 您可以藉由擷取 MFPKEY_PASSESRECOMMENDED 屬性,找到編解碼器所支援的編碼傳遞數目上限。 編解碼器都不支援兩個以上的傳遞。 將 MFPKEY_PASSESUSED 屬性設定為 2,將 DMO 設定為使用兩個傳遞。

一次將範例傳遞至編碼器 DMO,如同您在一次性模式中一樣。 當您處理前置處理階段的輸入範例時,呼叫 IMediaObject::P rocessInputIMFTransform::P rocessInput 會傳回 S_FALSE,表示不會產生任何輸出。

在第一次) 第一次處理最後一次輸入之後的第一次 (,您必須設定 MFPKEY_ENDOFPASS 屬性,通知編解碼器下一個已處理的輸入是第二次傳遞的第一個輸入。 此屬性不需要任何值,因此您應該使用空的 VARIANT 結構。

Windows Media 轉碼器