• ベストアンサー

ビデオキャプチャについて

MFCでビデオキャプチャをするプログラムを作れるのでしょうか?そのための関数やプログラムを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hyde-la
  • ベストアンサー率28% (42/146)
回答No.2

もうちょっと親切に書いておきましょうか・・・ あの説明ではあんまりなので。 アプリケーション自体はMFCで問題ないと思います。 問題は、ビデオポートへのアクセスと、それを高速に 画面に描画する仕組みが必要です。 そこでDirectXに目を向けて、描画部分とビデオポートの アクセスにのみDirectXを使用します。 (DirectXのみではアプリケーションは作成出来ません) 丁度手元のDirectX7のドキュメントにはDirectDrawの 説明のところにDirectDrawVideoPortというオブジェクトが を見つけました。 解説を読むと、色々楽出来て潰しも利くようなので紹介しました。 DirectX5には、このようなオブジェクトはなかったと思います。 DirectX6は殆ど知らないので解りませんが、多分6からある オブジェクトじゃないかと思います。 このVideoPortオブジェクトは、従来のDirectDrawの サーフェス(DirectXが管理する描画領域)を生成しておき、 DirectDrawVideoPort::SetTargetSurfaceメンバ関数で登録すれば そのサーフェスに対して描画してくれるようです。 一度サーフェスにしてしまえば、後はキャプチャも様々な 処理も思いのままです。 (ただし動画として保存するには、何らかの動画形式に 変換する必要があるでしょう) DirectDrawやDirectDrawSurfaceオブジェクトの生成・初期化は 色々面倒くさいのですが、やってることは簡単です。 市販の書籍やマニュアルのコピーでも大丈夫でしょう。

iguT
質問者

お礼

二回もの解答まことにありがとうございます。まだ、解答を拝見させていただいてから、試してはいませんが。これから解答を参考に行ってみたいと思います。本当に重ね重ねありがとうございました。

その他の回答 (1)

  • hyde-la
  • ベストアンサー率28% (42/146)
回答No.1

MFCだけでは難しいと思います。 DirectDrawのサブセットであるDirectDrawVideoPortオブジェクトを 使うと、ドライバとのインターフェイスを直接いじったりしないで 柔軟性のあるアプリが作れると思います。 詳細はDirectDrawのドキュメントを参照してみてください。

関連するQ&A