2011-06-22 6 views
0

私のウェブカムライブキャプチャアプリケーションに関連する2つの質問があります。そのようなMJPG YUY2、RGB24、I420、等の変化するフォーマットでDirectShowのサンプルグラバーの範囲について

  1. ウェブカメラキャプチャデータは、I入力形式に関係なくI420にキャプチャされたデータを変換する必要があります。したがって、サンプル・グラバーなどのDirect Showの組み込み変換フィルタの現在のスコープ/機能を知る必要があります。サンプルグラバーは、少なくともこれらの多くの変換をサポートしますか?または、独自のカスタムフィルタを作成する必要がありますか?

  2. 多くのウェブカメラは、複数のフォーマット出力を持つようです。メディアタイプがI420に設定されているサンプルグラバを接続すると、サンプルグラバフィルタはWebカメラドライバと通信し、Webカメラからのデータ出力がI420(Webカメラにサポートがある場合)になることを確認します。

私は既に上記に関連する質問を掲載しましたが、完全に回答できませんでした。助けてください。

答えて

0

directx sdkのRGBFiltersの例を見てください。例えば、含まれるフィルタの1つがTransNull24です。そのフィルタは変更されていないすべてのサンプルを渡しますが、入力がMEDIASUBTYPE_RGB24の場合にのみ接続できます。あなたがしていることは、ウェブカメラフィルターをTransNull24に、TransNull24をサンプルグラバーに接続することです。ウェブカメラがRGB24を出力できる場合は、それが使用されます。そうしないと、変換フィルタがWebカメラとTransNull24の間に自動的に追加されます。ウェブカメラが直接サポートしていない場合でも、サンプルグラバーにはRGB24しか表示されません。

もちろん、RGB24は必要ありませんが、サンプルフィルタを変更して独自のTransNullI420フィルタを作成するだけで済みます。私は標準的な色空間変換フィルタがI420を出力できるかどうか分からないので、ffdshowをインストールする必要があります。圧縮されていないビデオを変換するように設定してください。

1

サンプルグラバーはデータのメディアタイプを変更しませんが、接続する前に優先メディアタイプを設定すると、入力ストリームがそのメディアタイプになる必要があります。 RenderStream(直接接続ではなくインテリジェント接続)を使用するだけでDirectShowは必要なデコーダやトランスがあればそれを挿入します。

関連する問題