MPEG-2 demux Run-Time モード

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

MPEG-2 デマルチプレクサ ("demux") は、プッシュ モードまたはプル モードで動作できます。 プッシュ モードでは、データはネットワーク ブロードキャストなどのライブ ソースから取得されます。 プル モードでは、データはローカル ファイルから取得されます。

  • プル モードは、Windows XP 以降のプログラム ストリームでのみ使用できます。 下位レベルのプラットフォームでは、 MPEG-2 スプリッター フィルターを使用します。
  • プッシュ モードは、プログラム ストリームとトランスポート ストリームの両方で、すべてのプラットフォームで使用できます。

したがって、demux は、プル モードのプログラム ストリーム、プッシュ モードのプログラム ストリーム、およびプッシュ モードでのトランスポート ストリームの 3 つのモードをサポートしています。 demux は、実行時に使用するモードを決定します。 モードは、入力ピンが接続されたとき、または最初の出力ピンが構成されたときに決定されます。どちらか早い方が行われます。

  • 入力ピンが接続する場合: Windows XP 以降では、demux は IAsyncReader インターフェイスのアップストリーム フィルターに対してクエリを実行します。アップストリーム フィルターがそのインターフェイスを公開する場合、demux はプル モードのプログラム ストリームに対して自身を構成します。 それ以外の場合、demux はプッシュ モードを使用し、メディアの種類によってストリームの種類 (プログラム ストリームまたはトランスポート ストリーム) が決定されます。 入力の種類の一覧については、「 MPEG-2 Demultiplexer Media Types 」を参照してください。
  • 最初の出力ピンが構成されている場合: 出力ピンを作成し、 IMPEG2PIDMap に対してクエリを実行すると、demux によってプッシュ モードのトランスポート ストリームが構成されます。 IMPEG2StreamIdMap のピンに対してクエリを実行すると、demux によってプログラム ストリームがプッシュ モードで構成されます。 demux は一度に 2 つのモードで動作できないため、他のインターフェイスに対する後続のクエリは失敗します。

demux が特定のモードに対してそれ自体を構成すると、そのモードのままになります。 別のモードを使用するには、demux の新しいインスタンスを作成する必要があります。

MPEG-2 デマルチプレクサーの使用