MPEG 範例屬性
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
MPEG 範例具有下列特性。
時間戳記
並非所有範例都有開始和停止時間。 封包和承載資料的範例停止時間並不實用;它通常設定為開始時間加上一個。 如果系統層封包產生的系統層封包具有有效的 PTS,MPEG 封包或承載資料範例將會設定啟動和停止時間。
如需時間戳記的詳細資訊,請參閱 ISO1-11172 的第 2.4.1 節:「封包標頭可能包含 DTS 和 PTS (解碼和/或簡報時間戳記, (DTS 和 PTS) 參考封包中的第一個存取單位。」
對於MPEG_Stream主要類型,開始時間是第一個位元組的位元組位置,每秒評分為 1 位元組。 停止時間是最後一個位元組的位元組位置。 因此,連續的樣本應該會有第一個封包的停止時間等於下一個封包的開始時間。 針對影片 CD 資料,媒體的來源必須符合 CDFS 所公開的視訊-CD 檔案格式,以及開頭的標準 RIFF 區塊。
針對 MPEG 視訊封包和承載類型,時間戳記是第一個影片畫面的簡報時間,其圖片開始程式碼會在範例中開始。
對於 MPEG 音訊封包和承載類型,時間戳記是同步程式碼在範例中啟動的第一個音訊框架的簡報時間。
假設處理篩選可以成功預先註冊沒有時間戳記的封包和承載資料。
間斷
例如,如果資料流程中有中斷 (、即時資料中的間距,或資料或搜尋) 之後發生錯誤,則會在下一個媒體範例上設定不連續屬性。 這也允許時間戳記不連續。
串流結束通知
當解碼器收到此通知時,它必須處理任何緩衝的資料。 然後,任何新的資料都必須從不連續屬性開始。
相關主題