使用 MPEG-2 分割器
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
注意
從 Microsoft® Windows® XP 開始,MPEG-2 分割器篩選器已被取代。 請改用 MPEG-2 Demultiplexer 。
MPEG-2 分割器篩選器支援提取模式播放包含下列其中一個資料流程類型的 MPEG-2 程式資料流程。
- MPEG-2 影片
- MPEG-2 音訊
- 針對 DVD-Video 所定義的 Dolby AC-3 音訊
- LPCM (線性脈衝程式碼調調) 編碼為DVD-Video所定義的音訊
如需 MPEG-2 分割器支援的媒體類型清單,請參閱 MPEG-2 分割器媒體類型。
MPEG-2 分割器不會剖析傳輸資料流程。 使用 MPEG-2 Demultiplexer 篩選,僅 (推送模式) 傳輸資料流程。
時間戳記
播放 MPEG-2 程式資料流程時,MPEG-2 分割器篩選準則會將它遇到的第一個系統時鐘參考視為任何資料流程的時間來源。 這與使用簡報時間戳記的 MPEG-1 資料流程分割器不同。 IAMParse::GetParseTime方法會傳回已處理之資料的 (可能估計) 資料流程系統時鐘時間。
如果 MPEG-2 分割器篩選器遇到輸入範例,且該輸入範例具有不連續屬性集 (可以使用 IMediaSample::SetDiscontinuity 或 IMediaSample2::SetProperties) 來設定不連續屬性。 它會略過資料,直到找到資料中的第一個套件,並調整其時間戳記,讓系統時鐘參考 (該套件的 SCR) 視為與不連續之前的 SCR 時間相同。 如果 SCR 時鐘似乎要往後跳,或跳到超過一秒,則 (符合 MPEG-2 程式資料流程規格) ,這也會被視為時鐘不連續,而且明顯的時鐘差異會從傳遞至下游篩選的時間戳記減去。
串流選取
播放 MPEG-2 程式資料流程時,會選擇第一個視訊串流和找到周遊程式資料流程的第一個音訊資料流程。 最多支援一個音訊和一個視訊輸出針腳。 透過 IAMStreamSelect 介面,可以選取相同類型的不同資料流程,最多可以選取系統標頭中音訊限制所指定的數位。 對於 MPEG-2 音訊,目前假設串流會形成從資料流程0xC0開始的連續範圍。
支援的介面
MPEG-2 分隔器篩選器支援下列介面。
- IAMParse。 僅限 MPEG-2 程式資料流程。
- IAMStreamSelect。 僅限 MPEG-2 程式資料流程,僅限音訊資料流程。
- IMediaSeeking。 包含位元組模式搜尋。
相關主題