VMR ウィンドウ (互換) モード
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
VMR は、既存のすべての DirectShow アプリケーションと互換性を持つように設計されています。 既存のアプリケーションで使用すると、VMR は 1 つのビデオ ストリーム (互換モードとも呼ばれます) でウィンドウ モードで動作します。 このモードは、VMR-7 が Windows XP の既定のレンダラーであるため、IGraphBuilder::RenderFile などの Intelligent Connect メソッドの呼び出しで自動的に使用されるために提供されます。 アプリケーションで Intelligent Connect を使用し、基本的なレンダリング機能のみが必要な場合は、Windows XP 上の VMR-7 で正しくレンダリングするために特別なコードは必要ありません。
VMR-9 は、既定ではウィンドウ/互換モードでも実行されます。 ただし、VMR-9 は既定のビデオ レンダラーではありません。 アプリケーションで VMR-9 を使用するには、フィルター グラフに VMR-9 を明示的に追加する必要があります。 そのため、ウィンドウレス モードはウィンドウ モードよりも優れた機能を提供するため、ウィンドウモード/互換モードで VMR-9 を使用しても特に利点はありません。
ウィンドウ/互換モードでの VMR-7 の使用
ウィンドウ/互換モードで VMR-7 を設定または制御するために特別なプログラミングは必要ありません。 標準のグラフ構築呼び出しを使用してフィルター グラフを作成するだけで、VMR-7 は既定でこのモードになります。
ウィンドウ/互換モードでは、VMR-7 によって独自のウィンドウが作成され、ビデオが表示されます。 これを行うには、 IVideoWindow インターフェイスと IBasicVideo インターフェイスを公開する Window Manager コンポーネントを読み込みます。 アプリケーションでは、古いビデオ レンダラー フィルターとまったく同じように、これらのインターフェイスに対して Filter Graph Manager に対してクエリを実行できます。 詳細については、「 ウィンドウ モードの使用」を参照してください。
次の図は、ウィンドウ/互換モードの VMR-7 を示しています。
互換性の最大レベルを保証するために、ビデオ ウィンドウは古いビデオ レンダラー フィルターによって作成されたものと同じクラス名を持ち、古いビデオ レンダラーのウィンドウ マネージャー コードのほとんどは VMR によって引き続き使用されます。 ウィンドウ/互換モードでは、VMR は古いビデオ レンダラーよりも多くのシステム リソースを消費しません。 VMR-7 にはウィンドウ/互換モードの入力ストリームが 1 つしかないため、ミキサーまたはコンポジター コンポーネントは読み込まれません。
既定では、VMR はビデオ ウィンドウを埋めるためにイメージを拡大します。 ソースの縦横比を維持するには、VMR_ARMODE_LETTER_BOX フラグを指定して IVMRAspectRatioControl::SetAspectRatioMode メソッドを呼び出します。
注意
ビデオ ウィンドウを子ウィンドウに配置する MFC アプリケーションでは、空のWM_ERASEBKGND メッセージ ハンドラーを定義する必要があります。または、ビデオ表示領域が正しく再描画されません。
複数ストリームでのウィンドウ/互換モードでの VMR-7 の使用
ウィンドウ/互換モードでは、VMR-7 は既定で 1 つの入力ピンを作成し、混合モードを無効にします。 混合モードを有効にするには、接続する前に VMR を構成する必要があります。 詳細については、「 複数ストリームを含む VMR (混合モード)」を参照してください。 混合モードでは、VMR によって混合コンポーネントとコンポジター コンポーネントが読み込まれます。これにより、より多くのシステム リソースが必要になります。
ウィンドウ モードでの VMR-9 の使用
VMR-9 は既定のレンダラーではないので、互換性モードはありません。 代わりに、VMR-9 は既定で 4 つの入力ピンを持つウィンドウ モードになります。 このモードを使用すると、最大 4 つのビデオ ストリームを混在させることができます。 より多くのストリームを混在させる必要がある場合は、「複数ストリームを使用する VMR (混合モード)」の説明に従って構成する必要があります。 それ以外の場合、ウィンドウ モードの VMR-9 は、ウィンドウモードまたは互換モードの VMR-7 とまったく同じように動作します。