C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[14]: DirectshowにてIPカメラ(?)映像受信


(過去ログ 93 を表示中)

[トピック内 17 記事 (1 - 17 表示)]  << 0 >>

■55222 / inTopicNo.1)  DirectshowにてIPカメラ(?)映像受信
  
□投稿者/ コアラ主任 (5回)-(2010/11/22(Mon) 16:19:11)

分類:[VB6 以前] 

XP VB6SP6 です。
最終的には、マルチキャスト配信映像を静止画保存したいのですが、まずは、
自分のWEBカメラの映像を静止画保存させることはできるようになりました。
その後、カメラ部分をマルチキャストアドレスにすれば良いのかと単純に
考えていました。
しかし、調べているのですが、DirectshowのフィルターにIPアドレスを指定するカメラ映像を取得するものを
発見できません。
QuartzTypeLib.FilgraphManagerのRenderFileにIPアドレスを指定できるようですが、
こちらに指定し、事前にマルチキャストグループと言うものに参加しておけば良いのでしょうか。
何分、開発環境では、マルチキャスト配信を受信できる環境に無いもので、どこかにテストできる
マルチキャスト配信を受信できるものって、無いものなのでしょうか。。。
以上、何かわかる方いらっしゃいましたら、よろしくお願いいたします。
m(__)m


引用返信 編集キー/
■55458 / inTopicNo.2)  Re[1]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (6回)-(2010/12/02(Thu) 17:44:00)
未だに手がかりが無く・・・。
引き続き、よろしくお願いいたします。
m(__)m



No55222 (コアラ主任 さん) に返信
> XP VB6SP6 です。
> 最終的には、マルチキャスト配信映像を静止画保存したいのですが、まずは、
> 自分のWEBカメラの映像を静止画保存させることはできるようになりました。
> その後、カメラ部分をマルチキャストアドレスにすれば良いのかと単純に
> 考えていました。
> しかし、調べているのですが、DirectshowのフィルターにIPアドレスを指定するカメラ映像を取得するものを
> 発見できません。
> QuartzTypeLib.FilgraphManagerのRenderFileにIPアドレスを指定できるようですが、
> こちらに指定し、事前にマルチキャストグループと言うものに参加しておけば良いのでしょうか。
> 何分、開発環境では、マルチキャスト配信を受信できる環境に無いもので、どこかにテストできる
> マルチキャスト配信を受信できるものって、無いものなのでしょうか。。。
> 以上、何かわかる方いらっしゃいましたら、よろしくお願いいたします。
> m(__)m
>
>
引用返信 編集キー/
■55464 / inTopicNo.3)  Re[2]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ ごう (215回)-(2010/12/02(Thu) 23:05:08)
No55458 (コアラ主任 さん) に返信

>>自分のWEBカメラの映像を静止画保存させることはできるようになりました。

自分のWEBカメラと、IPカメラって、同じ製品なんでしょうか? 
WEBカメラって、よくSkypeなどで使用されているUSB接続のカメラのことですかね?
また、そもそも、IPカメラって何のことを指してますか?
「ネットワークカメラ」のことでしょうか?

自分のWEBカメラ→USB接続で使用
ネットワークカメラ→カメラにIPアドレスを指定、LANケーブル経由で使用
だと、状況が変わってくるかなーと。

お使いのWEBカメラと、IPカメラの仕様がわからないので何ともいえませんが…。
差し支えなければ、カメラの機種や、ネットワーク構成を教えていただければ的確なアドバイスがもらえるかもしれません。


※以下、IPカメラというのをネットワークカメラだと仮定してお話を進めます。

当方、DirectShowを使ってたことはありますが、
ネットワークカメラの映像をDirectShowフィルタに通して使ったことはないので
「DirectShowを経由してIPカメラの映像を取得し、静止画を得る」という貴殿希望のやり方を教えることは出来ませんし、ノウハウもありません。

また、ネットワークカメラを使用したプログラムの作成経験はあるので、私の経験からできそうなアドバイスを一つ。
これは、ネットワークカメラの仕様次第ですが、
MotionJPEG形式で動画を配信しているタイプのネットワークカメラですと、
クライアントPCからCGIコマンド(これはネットワークカメラのマニュアルに掲載されていると思います。)を送信し
そこから静止画や動画(パラパラ漫画形式のコマ画像、フレームレートが30fpsとすると1秒間に30枚分の画像が配信される)を受信することが出来ます。
その画像を静止画or動画に加工するのは、クライアントPCでのプログラム次第でできる、といった感じです。


引用返信 編集キー/
■55466 / inTopicNo.4)  Re[2]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ shu (219回)-(2010/12/03(Fri) 00:24:04)
No55458 (コアラ主任 さん) に返信

マルチキャストだとUDP使うんじゃないかな。
UDPのプログラムしたことないので詳しいことは言えませんが。

マルチキャスト VB で検索してみるといいんじゃないかな。

データさえ取れれば、後は一緒かと思います。
引用返信 編集キー/
■55498 / inTopicNo.5)  Re[3]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (7回)-(2010/12/03(Fri) 16:12:58)
ご返答ありがとうございます。
他、アドバイスもありがとうございました。

はい、UDPでのマルチキャスト配信です。
しかし、そのマルチキャストに行く付き前の
そもそも、カメラ映像の取得インタフェースに
悩んでおります。


> マルチキャスト VB で検索してみるといいんじゃないかな。
はい、かなり、たくさん、引っかかるのですが、いかんせん、
JAVAかC系統、あっても、VB.netのサンプル、解説しか、ありません。
そのなかでも、一つ、
http://www.geekpage.jp/programming/directshow/renderfile-url.php
ここが、まさにやりたい事が書いてあるのですが、C言語からVB6に翻訳できる
スキルがなく、悩んでおりました。
以下、この部分がわかるとVB6でできるのかどうか、判明するのかと考えております。
---------------------------------------------------------
// FilterGraphを生成
CoCreateInstance(CLSID_FilterGraph,
NULL,
CLSCTX_INPROC,
IID_IGraphBuilder,
(LPVOID *)&pGraphBuilder);

// MediaControlインターフェース取得
pGraphBuilder->QueryInterface(IID_IMediaControl,
(LPVOID *)&pMediaControl);

// Graphを生成
pMediaControl->RenderFile(URL);

// 再生開始
pMediaControl->Run();
---------------------------------------------------------

VB6で作成中・・・・。
---------------------------------------------------------
'Dim mGrp As QuartzTypeLib.FilgraphManager
Dim cameraflt As QuartzTypeLib.IFilterInfo
Dim ca merapin As QuartzTypeLib.IPinInfo
Const URL_FILTER2 = "http://127.0.0.1:1908/サーバ擬似環境/aaa.avi"

'グラフマネージャの作成
Set mGrp = New QuartzTypeLib.FilgraphManager

Set moManager = New QuartzTypeLib.FilgraphManager
moManager.RenderFile ("http://127.0.0.1:1908/サーバ擬似環境/aaa.avi") <---ここでエラー
'mGrp.RenderFile ("http://127.0.0.1:1908/サーバ擬似環境/aaa.avi")
moManager.Run
---------------------------------------------------------

自分のパソコンにテスト環境を作成し、実行するのですが、
「オートメーションエラー」となってしまいます。

何か手がかりがわかる方いらっしゃいましたら、よろしくお願いいたします。
m(__)m


引用返信 編集キー/
■55515 / inTopicNo.6)  Re[4]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ 熊谷隆史 (2回)-(2010/12/04(Sat) 10:05:12)
> moManager
はどこから出てきたのか分かりませんが、
型をIMediaControlにすればいいのでは。
http://support.microsoft.com/kb/436361/ja

> C言語
C++ですね。

Set pGraphBuilder = GetObject("new:E436EBB3-524F-11CE-9F53-0020AF0BA770")
以降、DispCallFuncで呼び出しなんて事も可能かと。
# 可読性に難ありですが。

引用返信 編集キー/
■55516 / inTopicNo.7)  Re[3]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (8回)-(2010/12/04(Sat) 18:03:54)
遅くなりましたが、ご返答ありがとうございます。。。
(と言うか、一度、送信したのに反映されなかった・・・)


> 自分のWEBカメラと、IPカメラって、同じ製品なんでしょうか? 
> WEBカメラって、よくSkypeなどで使用されているUSB接続のカメラのことですかね?
> また、そもそも、IPカメラって何のことを指してますか?
> 「ネットワークカメラ」のことでしょうか?
はい、自分のPCにUSB接続しているBUFFLOのBWC-35H01と書いてある、WEBカメラです。
IPカメラとは、とあるイントラ上のネットワークアドレスのついてあるネットワークカメラです。
ネットワークカメラの仕様は今、手元に無いのですが、エンコーダ、デコーダの仕様は手元にあります。

> 当方、DirectShowを使ってたことはありますが、
> ネットワークカメラの映像をDirectShowフィルタに通して使ったことはないので
これは、Directshowでのネットワーク指定が難しかったので採用されなかったんですかね。。。


> MotionJPEG形式で動画を配信しているタイプのネットワークカメラですと、
> クライアントPCからCGIコマンド(これはネットワークカメラのマニュアルに掲載されていると思います。)を送信し
> そこから静止画や動画(パラパラ漫画形式のコマ画像、フレームレートが30fpsとすると1秒間に30枚分の画像が配信される)を
> 受信することが出来ます。
そぅなんですか。。。
カメラが複数種類あるので対応が大変そうですが、他に選択の余地が無さそうなら、調べたいと思います。
情報ありがとうございます。
引用返信 編集キー/
■55517 / inTopicNo.8)  Re[5]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (9回)-(2010/12/04(Sat) 18:17:33)
ご返答ありがとうございました。

> > moManager
> はどこから出てきたのか分かりませんが、
> 型をIMediaControlにすればいいのでは。
UPしたコーディングは標準モジュールにあったものも
一緒にまとめて書いたもので、抜けていました。
Private moManager As IMediaControl
定義しておりました。。。
と言う事は、他に間違いがなければ、これで実現可能と
言う事でしょうか・・・。

>>C言語
> C++ですね。
C#との違いもPGを見てもよくわからない状態で・・・。

> Set pGraphBuilder = GetObject("new:E436EBB3-524F-11CE-9F53-0020AF0BA770")
> 以降、DispCallFuncで呼び出しなんて事も可能かと。
> # 可読性に難ありですが。
・・・、"new:E436EBB3-524F-11CE-9F53-0020AF0BA770"
これは、何を呼び出しているんでしょ・・・。
少し、調べてみます。。。
ありがとうございます。
引用返信 編集キー/
■55522 / inTopicNo.9)  Re[6]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ 熊谷隆史 (3回)-(2010/12/05(Sun) 08:28:42)
2010/12/06(Mon) 08:00:23 編集(投稿者)
削除済み

引用返信 編集キー/
■55523 / inTopicNo.10)  Re[7]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ ごう (217回)-(2010/12/05(Sun) 10:18:35)
そもそも、フィルタの組み合わせが正しくない可能性も考えられます。
「GraphEdit」を使って、再生に成功するかどうか試されてはどうでしょう?
成功したフィルタの組み合わせを、コーディングに利用すればいいわけですし。
引用返信 編集キー/
■55528 / inTopicNo.11)  Re[8]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (10回)-(2010/12/05(Sun) 18:21:14)
ご返答ありがとうございます。。。

> そもそも、フィルタの組み合わせが正しくない可能性も考えられます。
> 「GraphEdit」を使って、再生に成功するかどうか試されてはどうでしょう?
> 成功したフィルタの組み合わせを、コーディングに利用すればいいわけですし。
はい、そのフィルタをいろいろ試してみたり、するのですが、うまくいかないです。。。
例えば、「FileSource(URL)」にURLを書いたテキストファイルを指定すると、
「インターフェースがサポートされていません」と出て、それでも、
FileSource(Async)にして、AVI Muxを途中にVideoRendererに出力するも、エラーを
特定できませんとわけのわからないエラーになってしまいます。
フィルタを何を使うといいのかでもわかるとコーディングにつながるとは思うのですが・・・。
(それすらも調査しないといけないですが・・・)



引用返信 編集キー/
■55532 / inTopicNo.12)  Re[9]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ ごう (218回)-(2010/12/05(Sun) 20:56:10)
No55528 (コアラ主任 さん) に返信
今、GraphEditのあるPCがないので試せませんが、

> 例えば、「FileSource(URL)」にURLを書いたテキストファイルを指定すると、
> 「インターフェースがサポートされていません」と出て、それでも、
> FileSource(Async)にして、AVI Muxを途中にVideoRendererに出力するも、エラーを
> 特定できませんとわけのわからないエラーになってしまいます。


URLを書いたテキストファイルでは、多分認識しないのでは?
(どっかに「そのやり方でやってます!」みたいな資料ありました?)
FileSource(URL)にURLを入力する何かがあったと思うのですが・・・ 
(なんせDirectShowプログラミングに携わっていたのが5年以上昔なもので。
当時はUDPの受信をするのではなく、Webサーバ上の動画ファイルを表示/加工させるのに使用させていました。)

それか、[File]-[Render URL...] を使ってみては?



以下、以前の回答について。
>IPカメラとは、とあるイントラ上のネットワークアドレスのついてあるネットワークカメラです。
>ネットワークカメラの仕様は今、手元に無いのですが、エンコーダ、デコーダの仕様は手元にあります。

もし、「ネットワークカメラから画像(静止画)だけ取得できればいい」のであれば、
ネットワークカメラ製造元から提供されているCGI(もしくはAPI)仕様書を使って、
WinsockかWinInetを使用して画像を受信したほうが、DirectShowを使うよりも手っ取り早いのではないかな、とも思います。

※機種によってはCGI仕様書が提供されていない場合もあります。これは製造元に確認してください。

引用返信 編集キー/
■55558 / inTopicNo.13)  Re[10]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (11回)-(2010/12/06(Mon) 13:14:08)
ご返答ありがとうございます。

> URLを書いたテキストファイルでは、多分認識しないのでは?
> (どっかに「そのやり方でやってます!」みたいな資料ありました?)
そのようですね、、、そう言うようにやってみたら、どう!?みたいな
書き込みはあったのですが、やはりだめなようですね。。。

> FileSource(URL)にURLを入力する何かがあったと思うのですが・・・ 
・・・、その何かは、永遠にわからないのでしょうか・・・。
もし、何かで調べる機会がありましたら、よろしくお願いいたします。

> それか、[File]-[Render URL...] を使ってみては?
FileSource(Async)--->VideoRendererは、
中間フィルタの組み合わせがみつかりませんでしたとエラーになってしまいました。。。
(/_;)
「Render URL...」?と言うフィルターですか?

> もし、「ネットワークカメラから画像(静止画)だけ取得できればいい」のであれば、
> ネットワークカメラ製造元から提供されているCGI(もしくはAPI)仕様書を使って、
> WinsockかWinInetを使用して画像を受信したほうが、DirectShowを使うよりも手っ取り早いのではないかな、とも思います。
はい、静止画だけです。。。
ただ、カメラ機種が複数種あって、大変そうかなと考えています。。。
まず、カメラの仕様書を入手してきます。。。
引用返信 編集キー/
■55561 / inTopicNo.14)  Re[11]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ ごう (221回)-(2010/12/06(Mon) 14:15:25)
No55558 (コアラ主任 さん) に返信
> そのようですね、、、そう言うようにやってみたら、どう!?みたいな
> 書き込みはあったのですが、やはりだめなようですね。。。

「調べて試して駄目だった」、というのを報告するときは、
その元となる資料も記載してくれると回答者が非常に助かります。


>>FileSource(URL)にURLを入力する何かがあったと思うのですが・・・ 
> ・・・、その何かは、永遠にわからないのでしょうか・・・。
> もし、何かで調べる機会がありましたら、よろしくお願いいたします。

当方も仕事がありますので、調査についてはご遠慮させていただきます。


>>それか、[File]-[Render URL...] を使ってみては?
> FileSource(Async)--->VideoRendererは、
> 中間フィルタの組み合わせがみつかりませんでしたとエラーになってしまいました。。。
> (/_;)
> 「Render URL...」?と言うフィルターですか?

メニューの[File]をクリックすると、6番目に[Render URL...]という項目があって
それをクリックすると、動画のURLを入力するダイアログが現れるのですが、ありませんか?

引用返信 編集キー/
■55608 / inTopicNo.15)  Re[12]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (12回)-(2010/12/07(Tue) 13:57:47)
お仕事のお忙しいところ、ご返答ありがとうございました。

> 「調べて試して駄目だった」、というのを報告するときは、
> その元となる資料も記載してくれると回答者が非常に助かります。
はい、すいません。。。
ソース元が2chの書き込みだったもので・・・。
ちなみに、「http://c.2ch.net/test/-.YYl00/tech/1214127501/159-c」です。。。

> 当方も仕事がありますので、調査についてはご遠慮させていただきます。
はい、もちろん、やってくださいとは、申しません。。。
ただ、何か別の機会で偶然出てきた折には・・・、よろしくお願い致したく。m(__)m

> メニューの[File]をクリックすると、6番目に[Render URL...]という項目があって
> それをクリックすると、動画のURLを入力するダイアログが現れるのですが、ありませんか?
あっ、ありました・・・が、単にURLでは、駄目らしく、メッセージが英語なので、
「Could not construct a graph from this file.
- Have you installed all necessary filters?
- Note that the 'Render File' menu option cannot render *.GRF files.」

今一歩、理解できないのですが、何か足りないと言われているような・・・、
調べていると、
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200601/06010017.txt」の記事があり、
恐らく、そぅ言う事なのかと・・・。
カメラは複数台あるのですが、メーカは2種類ほどだったので、型番違いなら、同じコマンドで
良いのかと思いますので、CGIコマンド(Winsockを使ったメッセージ送受信で良いのですよね)で
取り組もうかと方針転換を考えております。

※(ちなみにその上の「Render Media File...」と言うので、Aviファイルを指定するとフィルターが
 生成されて出てきました。)
 これをコーディングに落とす作業を調べて、試すこともしてみます。。。


どぅも、ありがとうございました。

引用返信 編集キー/
■55631 / inTopicNo.16)  Re[13]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ ごう (225回)-(2010/12/07(Tue) 23:09:17)
No55608 (コアラ主任 さん) に返信
> ちなみに、「http://c.2ch.net/test/-.YYl00/tech/1214127501/159-c」です。。。
どれがソース?
まあ、2chの情報は信憑性が高いわけではないですから、あまり本気にしてはいけないのかもしれませんね。


>>当方も仕事がありますので、調査についてはご遠慮させていただきます。
> はい、もちろん、やってくださいとは、申しません。。。
> ただ、何か別の機会で偶然出てきた折には・・・、よろしくお願い致したく。m(__)m
悪いけど、当方のもとには当分、動画関係のお仕事回ってこないと思うw
今は、約5年前の知識を思い出しながら書いています。(なんだかんだで復習にはなっていますが)


>>メニューの[File]をクリックすると、6番目に[Render URL...]という項目があって
>>それをクリックすると、動画のURLを入力するダイアログが現れるのですが、ありませんか?
> あっ、ありました・・・が、単にURLでは、駄目らしく、メッセージが英語なので、
> 「Could not construct a graph from this file.
> - Have you installed all necessary filters?
> - Note that the 'Render File' menu option cannot render *.GRF files.」
>
> 今一歩、理解できないのですが、何か足りないと言われているような・・・、

英語がわからないときは翻訳サイト等を利用しましょう。


> 調べていると、
> 「http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200601/06010017.txt」の記事があり、
> 恐らく、そぅ言う事なのかと・・・。
> カメラは複数台あるのですが、メーカは2種類ほどだったので、型番違いなら、同じコマンドで
> 良いのかと思いますので、CGIコマンド(Winsockを使ったメッセージ送受信で良いのですよね)で
> 取り組もうかと方針転換を考えております。

WinsockでもWinInetでも、お好きなようにどうぞ。WinInetのほうが組みやすかった。あくまで「個人の感想」だけど。
カメラの機種がわからないので、これ以上は何ともいえませんが…。
(なお、個々のコマンドについては製造元に確認されたほうが確実です)


> ※(ちなみにその上の「Render Media File...」と言うので、Aviファイルを指定するとフィルターが
>  生成されて出てきました。)
>  これをコーディングに落とす作業を調べて、試すこともしてみます。。。

まあ、このフィルタを使って、動画の再生ができるならば、その組み合わせでコーディングすればできるだろうとは思います。


# 個人的に、小文字は苦手なの。勘弁してね。
引用返信 編集キー/
■55664 / inTopicNo.17)  Re[14]: DirectshowにてIPカメラ(?)映像受信
□投稿者/ コアラ主任 (13回)-(2010/12/08(Wed) 17:06:40)
ありがとうございました。
もう少し、具体的な技術と言うか、こんなパターンで書いてみると言うのを
期待したりもしたのですが、提供できる情報が少ないせいか難しそうですね。。。

これまでに頂いた情報を元になんとか、再度、調べたいと思いますので
この質問は解決という事で締めたいと思います。

ご回答いただいた皆様の貴重のお時間をいただき、ありがとうございました。


> # 個人的に、小文字は苦手なの。勘弁してね。
失礼しました。。。(って、英語の?)
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -