VFWを使って、キャプチャ中のフレームをビットマップ形式で横取りするには


いおり  2002-01-12 03:29:42  No: 464  IP: [192.*.*.*]

たびたびビデオキャプチャの件で質問させていただきます。
現在、リアルタイムにDV画像をプレビューしています。そこで、プレビュー中に1フレームずつビットマップ形式で取り込みたいのですが、どうしたらよいかわかりません。

いろいろ調べたところ、VFWのコールバック関数(capSetCallbackOnFrame)を使えばできそうなことがわかったんですが、ヘルプを見ても皆目わからない状態です。

ちなみに別の方法で、
プレビュー画面をBitBltとタイマー(Intervalが1msec)を使ってビットマップ形式として取り込めることはできました。

しかし、DVが30fpsで出力しているのに対して、この方法では、取り込みレートが7.444...fpsに落ちてしまうのです。

後々、取り込んだビットマップオブジェクトに対して何らかの処理を動的に加えたいので、私の希望は15fps程度で取り込めたら幸いです。

どなたか、いいアドバイスをよろしくお願いいたします。

編集    削除
にしの  2002-01-15 23:06:42  No: 465  IP: [192.*.*.*]

C言語はわかりますか?

http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/videocapture.html

ここにcapSetCallbackOnFrameの例がありました。
capSetCallbackOnFrameは、MSDN Libraryにも出ていないそうですね。

編集    削除
いおり  2002-01-17 06:43:23  No: 466  IP: [192.*.*.*]

にしの様、参考になるサイトを教えていただきまして、ありがとうございます。
現在はdelphiユーザーですが、以前はVC++を少々がじっていましたので、なんとか頑張ってみます。

また、うまくできましたら報告いたします。

編集    削除