ここから本文です

DirectShowによる複数USBカメラからキャプチャ

sky********さん

2013/7/2109:52:20

DirectShowによる複数USBカメラからキャプチャ

C++でDirectShowを使い、複数のUSBカメラからキャプチャを試みています。
カメラは3台で、デバイスマネージャ上では同名で認識されており、ドライバも同じものを使っております。
カメラ1~3と順にキャプチャしたいのですが、カメラ自体には固有の番号等はふられておらず、
現在は認識した順にしかキャプチャできません…。

IPropertyBag::Read(L"FriandlyName",...) で名称を取得してみましたが、全て同名で取得した為、各個に区別できませんでした。
3台のカメラを、できれば一意な名称、IDなどで区別したいのです。(できればポートを抜き差ししても変わらないもので)

DirectShowのみで不可能であれば、他の方法でも良いので、お教え願えないでしょうか。(できればDirectShowだとベストですが)

何方かお願い致します。

閲覧数:
2,535
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

oha********さん

2013/7/2214:09:30

FirendlyNameではデバイス名しか取得できないようなのでDevicePathで取得した情報で比較するのはどうでしょう?
http://msdn.microsoft.com/ja-jp/library/cc370645.aspx
ではDevicePathは一意の文字列となっているので固有情報が入っているものと思われます
カメラは1つしかないのですがDevicePathでは
\\?\usb#vid_046d&pid_0825&mi_00#6&25dd232f&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083}
こんな感じの情報が引き出せました
試してみてください

質問した人からのコメント

2013/7/24 18:04:06

降参 DevicePathでやってみた結果、一意の情報を取得できました。
が、PCによって設定される値は変わっており、本来であればドライバをインストールしたPCや、ポートを挿した場所にも依存しないような方法がベストでしたが、今回は教えて頂いた方法でいきます。今のカメラではこれが限界かと思われます。
DDKなどのドライバ周りにまで手を出す時間も無く…。
本当にありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる