VB6でWEBカメラの画像を表示したり撮るプログラムを作りたいのですがdirectx9のgraphdtを使っても表示されません.video capture sourcesを選べません.カメラはpanasonicのBB-HCM381を使っています.http://www.geocities.co.jp/SiliconValley/7406/tips/dshow/dshow2.htmlを見ているんですがフィルタが出ないのでできないのですが・・
USBとかIEEE1394とか独自の規格のケーブルとかで繋がっているのならば、
そういうドライバを介して"Video Capture Source"の中に入っているのが
普通ですが、今回のケースではLANケーブルを介して送られてくるので、
"Capture"カテゴリーを通さないと考えるべきでしょう。
直接"DirectShow Filters"辺りから探すか、もしかしたらそれこそ
FilgraphManager.RenderFileでURLを指定するだけかも知れませんし。
もちろん、アナログビデオ端子から出力を得て、それをキャプチャー
カードに渡したりすれば、"Video Capture Source"からにはなるでしょう。
回答ありがとうございます.しかしながら"DirectShowFilters"の中には
それらしきものなかったです."FilgraphManager.RenderFile"とはどこにあるものなのでしょうか?DirectShowの中にあるのでしょうか?
ほとんどがディスプレイとfilenameとmeritとpinって出てきますがそれらのどれかなんでしょうか?
URLを指定する方法をgoogleで調べたりしましたが良く分かりません.
初心者ですいません
そのメソッドがわからないようならば、DirectShowをVB6から使うことは
ほぼ絶望的なのでは。
ちなみに、GraphEditには、
[File]-[Render Media File...]
や
[File]-[Render URL...]
というメニューコマンドもあるはずですよね。
やはりしきいはたかいのですか?
すいません取り合えず勉強します.
ちなみに[File]-[Render URL...]はipうちこんでもだめでした
rtpなどのスキーマは入れたのでしょうか? IPアドレスだけ
入れてもプロトコルが不明ですので無意味でしょうし。
まずは、どんなプロトコルで転送しているのか、をマニュアル
などを介して調べるべきでしょう。
ちなみに、DirectShowそのものは、VB(5、6)に慣れている人
にはかなりわかりやすく利用しやすいものとしてできている
と思われます。
プロトコルはTCP/IPとかかれてありました...IPv4でアドレス打ち込むだけで動くんですけど...
IPというかいつも動かすIEのアドレスをコピペしてただけなんですけど.
http://アドレス/CgiStart?page=Single&Language=1とか...
ちょっと変えたりしてます
1番上で書いてあるサイトさんにはカメラのフィルタが分からないとプログラムできなさそうですし...
File]-[Render URL...]はcould not construct a graph from this fileってでてデータが無効です.ってなります.
すいません.わからないですよね...
WebBrowserで観るときのソースを保存して、実際のURLを
調べてみるとどうなります?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<HEAD>
<TITLE>CgiTitle</TITLE>
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META NAME="ROBOTS" CONTENT="NONE">
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
<META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=Shift_JIS">
</HEAD>
こんな感じです....
<BODY BGCOLOR="#efefef" TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#000000" TOPMARGIN=0
MARGINHEIGHT=0 leftmargin="0" marginwidth="0">
<!-- プログラム中の"#Version=1,0,0,15"のVersion No.は音声カメラの
"http://アドレス/CgiTitle?Resolution=320x240&Size=STD&Sound=Enable&Language=1"のソースを参照願います。-->
<TABLE cellSpacing="0" cellPadding="0" border="0" width="320" height="24" style="text-align: left;">
<TR bgcolor="#C5D0F0">
<TD width="40" height="24"><IMG src="http://アドレス/image/SnapShotButton.jpg" style="cursor:
pointer;"
onClick="window.open('http://アドレス/CgiSnapShot?Resolution=320x240&Quality=Precision&Language=1','_blank' ,'width=340, height=360')" alt="スナップショット(静止画)を撮る" title="スナップショット(静止画)を撮る"></TD>
<TD witdh="120" height="24"><OBJECT ID="AudioClient" WIDTH="120" HEIGHT="24"
CLASSID="CLSID:B9940246-4344-4D1B-BD82-DBAF7E657FF9"
CODEBASE="http://アドレス/SysCamInst.cab#Version=1,0,0,15">
<PARAM NAME="Width" VALUE="120">
<PARAM NAME="Height" VALUE="24">
<PARAM NAME="AudioPath" VALUE="http://アドレス/nphAudio?Mode=Mixed">
<PARAM NAME="RedirectPath"
VALUE="http://アドレス/CgiTitle?Resolution=320x240&Size=STD&Language=1&">
<PARAM NAME="RedirectTarget" VALUE="_self">
</OBJECT>
http://panasonic.biz/netsys/netwkcam/support/download/index.html
のを見た限りは、どうやらRealTimeStreamingではなく、JPEGなどを
httpやftp経由で取得させているように見えますね。Mothin JPEGモード
もありますが、基本的にはファイル転送を行っているだけのように
見えます。
そもそも「カメラ」であって「ビデオカメラ」ではないことに私も
早めに気付くべきでした。
つまりむりですか?もしくはVBで画像もしくは動画出すほかの方法とかないですか?すいません
静止画として取得するのであれば、上記で提示したURLから仕様書
(- CGIに投げるコマンドが書いてある -)をダウンロードし、それ
を参考にすれば十分にできますよね。
で、これを頻繁に繰り返すことで、擬似的な動画を構成できるでしょう。
明日そんな感じで作って見ます.
早速作っては見ているんですが...VBから直接カメラのCGIに命令を投げるプログラムみたいなのを作っているんですが...画像自体はピクチャーボックスでいいんですかね?仕様書見てたらWebブラウザか何か通さないといけないかと思っています.またまたすいません
あともうひとつ質問なのですが,VBでこのカメラを使ってプログラムを書いたんですが動画も出したいのは山々なんですが,写真を撮るボタンを押したらカメラのCGIで撮った写真がftpで送られてくるんですけど,これをform上に表示することはできますか?
あと妥協案としてVBでブラウザを作ったら簡単だと言われたんですがどうなんですか?教えてください
貴方にとって簡単かどうか、良いかどうか、は私にはわかりません。
UserContorl.AsyncReadとかWebBrowserコントロールとか
Inetコントロールについて調べてみては。
ありがとうございました.
擬似的にカメラ画像をWebBrowserで出すことができました.
後はカメラで撮った画像を映し出すだけです.がんばってみます
お世話になりました.
ツイート | ![]() |