Webカメラからのビデオまたは画像ストリームをインターセプトして変更するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/232893

  •  04-07-2019
  •  | 
  •  

質問

ウェブカメラからの画像またはビデオフィードのハンドルを取得し、それを自分の画像またはビデオに置き換えて、アプリケーションがカムに接続するようにできる汎用のAPI呼び出しがあります(MSN / Skype / Yahoo IM)は、カメラがキャプチャしているものの代わりに私の画像を表示しますか?

理想的には、デバイスベンダーやインターフェイスに依存しない一般的な方法で、これらのアプリが利用する標準的なウェブカメラスタックを介して、このような問題が存在する場合、これを解決しようとしています。

特定の目的以外のクライアントでウェブカメラを無効にできる必要があるセキュリティアプリケーション用です。コードを使用して画像キャプチャデバイスを停止および開始できますが、理想的には、デバイスを有効のままにして、現在のカムを使用できない理由をユーザーに伝えるグラフィックでキャプチャした画像を置き換えることをお勧めします。

役に立ちましたか?

解決

一般的に機能するように設計された最新のウェブカメラは通常、WDMデバイスとして実装され、DirectShowカーネルフィルターとして公開されます。その後、アプリケーションはDirectShowを使用してライブビデオストリームを操作できます。関連するグラフに自分自身を挿入して、その場でビデオストリームを変更できる、高いメリットを持つカスタムフィルターを作成することができます。ただし、この手法は確かに絶対確実ではなく、簡単に回避できます。この方法の影響を受けないビデオキャプチャテクノロジーもあります。つまり、すべてのデバイスに対して、または安全に必要なことを行うための信頼できる方法はありません。標準のウェブカメラを使用し、安全でない方法でプログラムでビデオフィードを変更できるようにしたい場合は、上記の手法が有効です。

一般的なDirectShow情報については、こちらをご覧くださいビデオキャプチャの詳細については、こちらをご覧ください。 AmCap および EZRGB24 サンプルも開始するのに適した場所です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top