MPEG-2 Demux Run-Time模式
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
MPEG-2 Demultiplexer (「demux」) 可以在推送模式或提取模式中運作。 在推送模式中,資料來自即時來源,例如網路廣播。 在提取模式中,資料來自本機檔案。
- 提取模式僅適用于 Windows XP 和更新版本,僅適用于程式資料流程。 在下層平臺上,使用 MPEG-2 分隔器 篩選器。
- 推送模式適用于所有平臺,適用于程式資料流程和傳輸資料流程。
demux 因此支援三種可能模式:提取模式中的程式資料流程、推送模式中的程式資料流程,以及推送模式中的傳輸資料流程。 demux 會決定執行時間要使用的模式。 當輸入針腳連接時,或設定第一個輸出針腳時,會決定模式,無論何時先發生:
- 當輸入針腳連接時:在 Windows XP 和更新版本上,demux 會查詢 IAsyncReader 介面的上游篩選;如果上游篩選準則公開該介面,demux 會針對提取模式中的程式資料流程自行設定。 否則,demux 會使用推播模式,而媒體類型會決定程式資料流程或傳輸資料流程) (資料流程類型。 如需輸入類型清單,請參閱 MPEG-2 Demultiplexer 媒體類型 。
- 設定第一個輸出針腳時:如果您建立輸出釘選並查詢 IMPEG2PIDMap,demux 會自行設定推送模式中的傳輸資料流程。 如果您查詢 IMPEG2StreamIdMap的針腳,demux 會自行設定程式資料流程,也會在推送模式中設定。 其他介面的任何後續查詢都失敗,因為 demux 無法一次以兩種模式運作。
一旦 demux 自行設定為特定模式,它就會保留在該模式中。 若要使用不同的模式,您必須建立 demux 的新實例。
相關主題