DirectShow でのビデオ レンダリングについて

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

DirectShow には、ビデオをレンダリングするいくつかのフィルターが用意されています。

  • ビデオ レンダラー フィルター。 このフィルターは、DirectX をサポートするすべてのプラットフォームで使用でき、特定のシステム要件はありません。 ビデオ レンダラーは、可能な限り DirectDraw を使用してビデオをレンダリングします。それ以外の場合は、GDI を使用します。 このフィルターは、Windows XP より前のプラットフォームでの既定のビデオ レンダラーです。
  • ビデオ ミキシング レンダラー フィルター 7 (VMR-7)。 VMR-7 は、既定のビデオ レンダラーである Windows XP で使用できます。 VMR-7 では、レンダリングに常に DirectDraw 7 が使用されます。 これは、アプリケーションがレンダリングに使用する DirectDraw サーフェスを制御するプラグイン モデルなど、古いビデオ レンダラー フィルターでは使用できない多くの強力な機能を提供します。
  • ビデオ ミキシング レンダラー フィルター 9 (VMR-9)。 VMR-9 は、レンダリングに Direct3D 9 を使用するビデオ ミキシング レンダラーの新しいバージョンです。 DirectX をサポートするすべてのプラットフォームで使用できます。 ただし、ビデオ レンダラー フィルターよりもシステム要件が高いため、既定のレンダラーではありません。
  • オーバーレイミキサーフィルタは、DVD再生およびブロードキャストビデオ専用に設計されています。 また、ビデオ ポート拡張機能 (VPEs) もサポートしており、グラフィックス カードにビデオを直接送信するハードウェア MPEG-2 デコーダーまたはアナログ TV チューナーと連携できます。
  • 拡張ビデオ レンダラー (EVR) フィルターは、Windows Vista 以降で使用できます。 これは、特に Windows Vista デスクトップコンポジションが有効になっている場合に、以前のビデオ レンダラーと比較してビデオ パフォーマンスが向上します。

一般に、EVR は Windows Vista 以降を対象とするアプリケーションに適しており、以前のバージョンの Windows で実行されているアプリケーションでは VMR-9 が推奨されます。 VMR-7 フィルターと VMR-9 フィルターの使用の詳細については、「 ビデオ ミキシング レンダラーの使用」を参照してください。

ウィンドウ モードとウィンドウレス モード

DirectShow ビデオ レンダラーは、 ウィンドウ モードまたは ウィンドウレス モードで動作できます。

  • ウィンドウ モードでは、レンダラーはビデオを表示する独自のウィンドウを作成します。 通常、このウィンドウをアプリケーション ウィンドウの子にします。 詳細については、「 ウィンドウ モードの使用」を参照してください。
  • ウィンドウレス モードでは、レンダラーはビデオをアプリケーション ウィンドウに直接描画します。 独自のウィンドウは作成されません。 このモードの詳細については、「 ウィンドウレス モードの使用」を参照してください。

ビデオ レンダラー フィルターでは、ウィンドウ モードのみがサポートされます。 VMR-7 フィルターと VMR-9 フィルターでは、両方のモードがサポートされています。 これらは、下位互換性のためにウィンドウ モードに既定で設定されますが、ウィンドウレス モードが推奨されます。 EVR では、ウィンドウレス モードのみがサポートされます。

ビデオのレンダリング