VMR と以前の DirectShow レンダラー
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
古いフィルターでは、ハードウェアの構成に応じて、グラフに異なるレンダラーが必要になります。
ビデオ レンダラー フィルターは、ビデオ ポート以外のシナリオで 1 つのビデオ ストリームをレンダリングするために使用されました。 これは、5 年以上前のグラフィックス ハードウェア テクノロジと、以前のバージョンの DirectDraw に基づいていました。 特定のシナリオでは、GDI を使用してレンダリングします。 これは、5 年前にはるかに制限されていたビデオ リソースを節約するため、またはマルチモニターのサポートに関連する DirectDraw の制限を克服するために行われます。 VMR-7 も VMR-9 も、レンダリングに GDI を使用することはありません。VMR-7 は DirectDraw 7 に完全に基づいており、VMR-9 は Direct3D 9 に基づいています。
ビデオ ポートまたは複数のビデオ入力ストリームが関係するシナリオでは、VMR の前に オーバーレイ ミキサー フィルターがレンダリングに使用されていました。 このフィルターでは、グラフィックス カード上のハードウェア オーバーレイのみが使用されるため、通常、ほとんどのカードによって提供される 1 つのオーバーレイ サーフェスに制限されます。 オーバーレイ ミキサーは、コピー先のカラー キー設定を実行しますが、アルファ ブレンドは実行できません。 ウィンドウ マネージャーがないため、ウィンドウ管理には 2 つ目のフィルターであるビデオ レンダラーを使用する必要があります。 VMR は、真のアルファ ブレンドが可能であり、ハードウェア オーバーレイに加えてソフトウェアで複数のオーバーレイを作成できます。
アプリケーションがクローズド キャプションやその他の VBI データをビデオにオーバーレイするビデオ ポートシナリオでは、VBI テキストに追加のビデオ メモリを割り当てるために、追加のフィルター VBI Surface Allocator が必要でした。 ISV の場合、VMR-7 は、割り当てとレンダリングの機能をすべてのシナリオで使用される 1 つのフィルターに組み合わせることで、アプリケーション開発を簡素化します。 VMR では、VBI Surface Allocator は不要になります。 このフィルターは、Windows XP では、オーバーレイ ミキサーによって以前に実行されたすべてのビデオ ポート タスクを実行する新しいビデオ ポート マネージャー フィルターに置き換えられます。
注意
VMR-9 はビデオ ポートをサポートしていません。
VMR は、以前のバージョンの DirectDraw のインターフェイスを組み合わせた古いレンダラーではなく、DirectDraw 7 (または VMR-9 を使用している場合は Direct3D 9) インターフェイスのみを使用するため、以前のレンダラーよりも堅牢です。 また、VMR には、Direct3D、VRAM とビデオ メモリ帯域幅の増加、ハードウェア アクセラレーション機能をサポートする、現在および将来の世代のアダプター向けに設計された新しい画像表示メカニズムも採用されています。 VMR では、フロントエンド処理に重点を置き、ビデオ ポートとオーバーレイへの依存を減らします。 しかし、すべての新しい機能を備えた VMR は、既存のアプリケーションとの最大限の互換性を確保するように設計されています。
VMR も拡張可能です。 アプリケーションは、独自のサブコンポーネントを提供して、カスタム ビデオ効果を実行したり、割り当ておよびレンダリング プロセスを制御したりできます。
関連トピック