はじめまして。早速質問に入らせて頂きたいと思います。
私は、探偵用の小さいカメラからCanoppusのMTU2400FXというビデオキャプチャを介してパソコンにカメラの画像を表示しています。この画像をなんとかVB内のPictureBoxに表示できないかと思い、色々調べたところDirectShowが一番最適なのではないかと考えました。
しかし、一般的なUSBカメラならGraphEditでカメラのドライバを指定してPRGを作成すれば問題なく動作するのですが、ビデオキャプチャを使用するとカメラのドライバがGraphEdit内に出てきません。どうすれば良いでしょうか?もしくは、ビデオキャプチャを使用するとDirectShowは使えないのでしょうか?
よろしくお願いします。
少し過去に、
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200601/06010017.txt
とう記事があります。
WebBrowserなどでも良いような気がしますが・・・。
駄レスですまぬ
MTU2400FXは"動画"のキャプチャ・チューナカードですから、
まずDirectShowに対応しているものと思われます。
# 同じCanopusである程度前にものを使っていますが、
# 勿論DirectShowに対応しています。
で、カメラというのはどんなものなのでしょうか?
もしアナログビデオカメラであるのならば、キャプチャ・チューナ
はDirectShowのフィルタとして出てくるのですから、キャプチャ
カードにカメラを繋いでいるというのであれば、カメラそのもの
としてではなく、キャプチャとしてグラフを組み立て、それを
利用すれば済みますよね。この場合は重要なインターフェースは
IAMCrossbarでしょう。
またデジタルビデオカメラでも、キャプチャカードのDV端子を
介して接続しているのならば、同様になるでしょう。
つまり、キャプチャカードを介している、という段階で、カメラ
の存在はPC側からは認識できないものになっている、と考える
のが普通だと思います。
カメラがそのままで認識できるとすれば、それはキャプチャカード
を介してではなく、直接PCにUSBやIEEE1394などで接続できるケース
であると思われます。
通りすがり さん、K.J.K. さん
お返事頂きましてありがとうございます。
私が使っているカメラは黄色と赤色の端子で出力されているので、
おそらくアナログカメラだと思われます。
詳しくお書きしていなくて申し訳無かったのですが、PCまでの接続としては
カメラから黄色と赤色の端子 → ビデオキャプチャからUSB → PC
と、なっています。
とても参考になるアドバイスを頂いているのに申し訳無いのですが、
自分はキャプチャとしてのグラフの組み立て方がまだ理解しきれていません。
【IAMCrossbar】というのもよく分かっていない状態なので、
もし宜しければ教えて頂きたいと思います。
VBのPRGをサンプルとして載せて頂けたらとても助かります。
よろしくお願いします。
ですから、GraphEditではカメラをあらわすフィルタを探すのではなく、
そのキャプチャ・チューナカードをあらわすフィルタを探して、そこ
からフィルタグラフを組み立ててください。
# カテゴリは"Video Capture Sources"辺り。
"Video Capture Sources"から適切なビデオキャプチャデバイスを、
"WDM ストリーム クロスバー デバイス"もしくは
"WDM Streaming Crossbar Devices"からは適切なクロスバーを、
追加し、クロスバーをあらわすフィルタの"Video Decorder Out"ピン
をビデオキャプチャフィルタのビデオ入力を表すピンに繋げて下さい。
その上でビデオキャプチャフィルタのプレビュー出力をあらわすピン
に右クリックのコンテキストメニューで"Render Pin"させればレンダラ
に接続されるはずです。これが最低限のフィルタグラフになります。
そうしたら、そのフィルタグラフ中のCrossbar;クロスバーをあらわす
フィルタのプロパティダイアログを出して、"Crossbar"タブで、
1,まず"Output"フィールドで"Video Decorder Out"を指定する。
2,次に"Input"フィールドで"Video Composit In"や"Video SVideo In"
などの適切なアナログビデオ入力を表すものを指定する。
# チューナの場合は"Video Tuner In"だが、それではないということ。
# 実際にどれを指定するのかは、その環境やデバイスに依存します。
とすれば、おそらくはアナログビデオからの映像が表示されるはずです。
で、これをプログラミングしたサンプルは、以前日経ソフトウエアで
2002年5月、6月号に執筆しています。サンプルはおそらくダウンロード
可能だと思います。
まぁ、OSがXPであり且つハードもXP対応であるのならば、Osikiriさんの
ところで書いてある「Microsoft TV テクノロジ」を使うのがはるかに
簡単でしょう。
K.J.K さん、お返事ありがとうございます。
返事が遅くなってしまいまして申し訳ありませんでした。
実際おっしゃられたように確認してみたのですが、まず『Video Capture Sources』というところには何も入っておらず、(ビデオキャプチャを接続している状態でも)空でした。
それから一つ分かった事がありまして、私が使用しているビデオキャプチャ(MTU2400FX)はキャプチャカードではありませんでした。普通のデッキのようなもので、そこにカメラからの赤色と黄色端子がささるのですが、そこからの出力がUSB端子となっております。詳しくはこちらのサイトを参考にして下さい。
→ http://www.canopus.co.jp/catalog/mtu2400/mtu2400fx_index.htm
それでは、よろしくお願いします。
他のカテゴリーで似たようなものはないのでしょうか?
例えば日本語になっている場合などがあります。
もしくは"WDM Streaming ..."や"WDM ストリーム ..."
というような名前のカテゴリーではどうなっているので
しょうか?
とりあえずカードと書いていましたが、デバイスと表現する
べきものであるので、以降はそちらを使うことにします。
お返事ありがとうございます。
"WDM Streaming ..."や"WDM ストリーム ..."を
一通り調べたのですが、ビデオキャプチャを接続する
前とした後で増えているデバイスはありませんでした。
ちなみに"WDM ストリーム ..."というカタカナの方は
全て中身が空でした。
それでも見つからないようであれば、(ハードウェア)エンコーダ、
に関するカテゴリーから探してみるとか。
とにかく、そのデバイスを扱うためのフィルタが見つからない限り、
DirectShow+VBで使えないので、何とかして見つける必要があります。
WDM関連(ドライバをラッピングしたフィルタをDirectShowが提供する)
以外でも探してみるしかなさそうですね。
K.J.K さん、お返事ありがとうございます。
また、返事が遅くなりましてすみませんでした。
これまで、色々とアドバイスを頂きましてありがとうございました。
無事に問題を解決出来ました。
その内容としては、やはりMTU2400FXを使用してGraphEditを作成するのは
不可能でした。(もしかしたら方法はあるかも知れませんが、自分では
探しきれませんでした。)
そこで、キャプチャボードを使用する事に致しまして実験して見たところ、
USBカメラを使用したPRGとほとんど変わらないPRGのまま
実行する事が出来ました。(ドライバ名を変更したぐらい)
これからはキャプチャボードを使用する方向で進めて行きたいと思います。
どうもお世話になりました。
また何かありましたら、よろしくお願いします。
ツイート | ![]() |