MPEG-2 Support in DirectShow

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

This section describes the components that you can use to play MPEG-2 content in DirectShow.


Although DVD video is based on MPEG-2, this section does not describe DVD playback or navigation. For information about DVD in DirectShow, see DVD Applications.


MPEG-2 data can come from a local file, or from a live source, such as a network broadcast or D-VHS device. File playback is called pull mode because the parser filter pulls data from the file into the filter graph. Live sources are called push mode because the source filter pushes data into the graph.

DirectShow provides two filters that can parse MPEG-2 system streams:

  • MPEG-2 Demultiplexer ("demux"): This filter supports push mode for program streams and transport streams. In Windows XP and later, it also supports pull mode for program streams.
  • MPEG-2 Splitter: This filter supports pull mode for program streams on downlevel platforms. This filter is deprecated in Windows XP and later.

To use the MPEG-2 demux or MPEG-2 splitter, you must have DirectShow-compatible MPEG-2 audio and video decoders that accept packetized elementary streams (PES).

This section contains the following topics:

PSI Parser Filter Sample