ここから質問投稿すると、最大4000ポイント当たる!!!! >>

USBカメラの映像をプレビュー表示して、任意のタイミングで静止画を取得するプログラムを組んでいるのですが、どうもうまくいきません・・・。

環境は
使用言語:VB.NET
USBカメラ:Logicook Qcam E2500
です。

動画ファイルとして保存するのは、Graph Editでピンの繋ぎを確認→プログラミング でなんとかできたのですが・・・
それと、GetCurrentImageを使ってキャプチャしようとしたんですが、この関数がどうもVB.NETでは使えないらしく、他に良い方法があれば教えていただきたのですが・・・よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

すごいタイミングですね。


自分も最近、DirectShowを使って静止画のキャプチャとかをし始めました。
自分が見つけたページでよければ参考にしてください。
(自分は使用言語がC#なんで参考になるかわかりませんが・・・)
USBカメラをC#で使おう:http://mobiquitous.com/programming/usbcamera.html
DirectShowのビデオキャプチャプログラミング:http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewi …
DirectShowを切る:http://hammer.prohosting.com/~arabo/DirectShow.s …
DirectShowによる各種メディア形式の再生:http://www.limber.jp/tomo/data/ds.html
    • good
    • 2

動作検証していませんけど…。

 こんな検索結果を見つけたので紹介します。

参考URL:http://homepage1.nifty.com/yasunari/VB/VB2005/IB …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QUSBカメラを制御できるライブラリ

USBカメラを制御できるDLLか、ActiveXはありませんか?

Aベストアンサー

※これはマルチにいけるのかな?

#2のtodo36さんの参考URLの一つ
[USBカメラのTWAIN制御について]
http://okweb.jp/kotaeru.php3?q=505982


※参考URLの#1さんが、よい発言をしております。
カテがCですが^^;

[USBカメラを使った動体検知ソフトの開発をやっているのですが・・・]
http://okweb.jp/kotaeru.php3?q=942547

Qデバイスマネージャーの一覧取得

デバイスマネージャーの一覧取得

VB2005,Framework2使用です。

現在PCで使用されているデバイスドライバ名を表示させたく、デバイスマネージャーに表示されているデバイス名を列挙し配列に収めたいのですが、調べてみたところSetup API等を使用すると可能な様ですが、VBではどのように記述すれば良いのでしょうか?

API利用までの知識がないのでここで凄く挫折しています・・



VBではありませんが、以下のサイトが参考になると思います。
参考:http://www.usefullcode.net/2006/12/post_19.html


よろしくお願いします。

Aベストアンサー

WMIのWin32_PnPEntityを使ってみるのはどうでしょうか?

Imports System
Imports System.Management ' 参照設定が必要
Module Module1
  Sub Main()
    Try
      Dim searcher As ManagementObjectSearcher
      searcher = New ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity")
      For Each queryObj As ManagementObject In searcher.Get()
        Console.WriteLine("{0}", queryObj("Name"))
      Next
    Catch ex As Exception
      Console.WriteLine(ex.Message)
    End Try
  End Sub
End Module

必要な情報は
http://www.anchorsystems.jp/anchor/ashp/netmon/samples/wmi_hard.html#Win32_PnPEntity.htm
を参考にしてみてください。

WMIのWin32_PnPEntityを使ってみるのはどうでしょうか?

Imports System
Imports System.Management ' 参照設定が必要
Module Module1
  Sub Main()
    Try
      Dim searcher As ManagementObjectSearcher
      searcher = New ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity")
      For Each queryObj As ManagementObject In searcher.Get()
        Console.WriteLine("{0}", queryObj("Name"))
      Next
    Catch ex As Exception...続きを読む

QDirect Show でUSBカメラキャプチャー

Direct showでUSBカメラキャプチャーしようとしています。
現在、6台のUSBカメラを接続し、連続して撮影をしています。
問題はキャプチャーする時間が長く、640x480画素モードで1000mS、1600x1200画素モードで2000ms程かかります。
Direct Showを使用する場合、この程度かかるのは普通でしょうか。
試しにプログラムに時間計測させた所、

FMediaControl->Run(); で640x480 の時160mS 1600x1200の時620mS(カウンター2-3間)

FMediaControl->Stop(); で640x480 の時310mS 1600x1200の時330ms(カウンター5-6間)

かかって居ました。

プログラム自体は先人が作成したもので、私はDirectXが良く分からないので、これから勉強し、時間が短く出来るのであれば挑戦したいと思って居ます。
ただ、他の開発時間も足りないので、初めからこの位かかるのが正常ならばここの部分はそのままにして置きたいと思い、質問させて頂きました。
  
下記に使用して居るプログラムの抜粋を記します。

この処理時間が正常なのか、正常で無い場合、考えられる原因、若しくは原因の調査の仕方をお教え頂ければ幸いです。

DWORD dTime0;
DWORD dTime1;
DWORD dTime2;
DWORD dTime3;
DWORD dTime4;
DWORD dTime5;
DWORD dTime6;

dTime0 = GetTickCount();
FCurrentCam = Cam;
FCaptured = false;
dTime2 = GetTickCount() - dTime0;
hr = FMediaControl->Run();
dTime3 = GetTickCount() - dTime0;
DWORD dTime0;
DWORD dTime1;
DWORD dTime2;
DWORD dTime3;
DWORD dTime4;
DWORD dTime5;
DWORD dTime6;
dTime0 = GetTickCount();
// 前回のキャプチャー終了待ち
for( int i=0; i<100 && FBusy; i++ ) {
Sleep( 100 );
}

if( FCurrentCam!=Cam ) { // カメラが同じ場合レンタリングしなおす必要なし
   // レンダリングしなおし部分省略

}
FCurrentCam = Cam;
FCaptured = false;
dTime2 = GetTickCount() - dTime0;
hr = FMediaControl->Run();
dTime3 = GetTickCount() - dTime0;

DWORD Ed = GetTickCount() + 3000; // 3000はタイムアウト
do {
Application->ProcessMessages();
Sleep( 20 );
} while( !FCaptured );
dTime4 = GetTickCount() - dTime0;
long ImageSize = Cam->prImageSize;
dTime5 = GetTickCount() - dTime0;
frmMain->lHrs[22] = FMediaControl->Stop();

dTime6 = GetTickCount() - dTime0;;
FBusy = false;
return Cam->prImage;
}

Direct showでUSBカメラキャプチャーしようとしています。
現在、6台のUSBカメラを接続し、連続して撮影をしています。
問題はキャプチャーする時間が長く、640x480画素モードで1000mS、1600x1200画素モードで2000ms程かかります。
Direct Showを使用する場合、この程度かかるのは普通でしょうか。
試しにプログラムに時間計測させた所、

FMediaControl->Run(); で640x480 の時160mS 1600x1200の時620mS(カウンター2-3間)

FMediaControl->Stop(); で640x480 の時310mS 1600x1200の時330ms(カウンター5-6間)

か...続きを読む

Aベストアンサー

#1 です。
>Run/Stopを繰り返さないで、どの様にキャプチャー出来るのでしょうか?

参考URLは SDK の 「サンプル グラバの使い方」というものです。
簡単に言えば、Run() 状態のまま、カメラのストリームから欲しい時にだけスナップショットでイメージを得る方法です。Stop() はアプリが終わるまで呼びません(時間が掛かるので)。

この方法の実装はネットで幾つか見つかると思います(どれも似ています)。
しかし、複数台のカメラで有効なのかどうか私には判りません。

よって #1に書いた「個人的にどうなのかな?」の部分は次のように言い換えたい思います。
・カメラが1台ならRun/Stopは繰り返さない方が早いと思う。しかし、複数台のカメラになると、そうせざるを得ないのも知れない。...です。

参考URL:http://msdn.microsoft.com/ja-jp/library/cc371163.aspx

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QDirectShowをダウンロード

DirectShowをインストールしたいのですがどこでダウンロードできますでしょうか?
探したのですが見つからないので教えてください よろしくお願いします

Aベストアンサー

K-Liteでいいとおもいます。
しかし、設定画面で、K-Liteの優先度を下げてください。
そうでないと、グラフィックボードが動画の再生に対応しているのに、CPUパワーを使ってしまうことになります。優先度を下げると、対応していない動画だけに使われるようになります。

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

QBuilder フレームレート設定

現在、複数USBカメラを使用してシステムを作成して居ます。
必要があって、カメラのフレームレートを下げようとしています。

関連質問
http://oshiete.goo.ne.jp/qa/7204105.html

フレームレートに関するものを調べるとAvgTimePerFrame、GetOutputFPS、SetOutputFPSがあります。

AvgTimePerFrameについてはプログラム出来ておりますが、GetOutputFPS、SetOutputFPSが出来て居ません。

現在、色々試して居ますが、基本的な事が判って居ないので解決策が見当たらない現状です。

で、AvgTimePerFrame、GetOutputFPS、SetOutputFPSの違いは何でしょうか。
AvgTimePerFrameがカメラのフレームレートを100nS単位で通知してくれる、
GetOutputFPSはカメラのフレームレートを1秒間のフレーム数で通知してくれる、
SetOutputFPSはカメラのフレームレートを1秒間のフレーム数で設定する、は理解して居ます。

私の使用しているカメラはロジクールのC905Mで、このカメラは23種類の解像度を持ち、AvgTimePerFrameを使用して各解像度で登録されているだろう3種類のフレームレート640x480は333333、低解像度は666666、高解像度は20000000が入手出来ています。

一方、GetOutputFPSはどの解像度を選択しても15FPSが帰って来ています。
もちろん、プログラムミスであろう事は判っていますがGetOutputFPS、若しくはSetOutputFPSを使用する際、上記の解像度指定が予め必要なのでしょうか、それとも解像度を指定してあれば、その解像度に対するフレームレートの取得、若しくは設定が出来るのでしょうか。
因みにAvgTimePerFrameの時は解像度を選択して値を入手して居ります。

おわかりに成る方が居られましたら宜しくご回答下さい。

現在、複数USBカメラを使用してシステムを作成して居ます。
必要があって、カメラのフレームレートを下げようとしています。

関連質問
http://oshiete.goo.ne.jp/qa/7204105.html

フレームレートに関するものを調べるとAvgTimePerFrame、GetOutputFPS、SetOutputFPSがあります。

AvgTimePerFrameについてはプログラム出来ておりますが、GetOutputFPS、SetOutputFPSが出来て居ません。

現在、色々試して居ますが、基本的な事が判って居ないので解決策が見当たらない現状です。

で、AvgTimePerFrame、GetOutput...続きを読む

Aベストアンサー

それは想像以上の現場でした。

やはり、普通だったら
AvgTimePerFrameから
IAMStreamConfig::SetFormat
で出来るであろう、というところというわけで


>現在、ワークの隙間を検査する為にUSBカメラ14台を接続し隙間44箇所の検査をする装置を検討していますが、タクトが50秒、キャプチャーを工夫して25秒まで持って行きましたけど、さすが今回はカメラ指定させてもらいました。


すべて、ロジクールのC905Mに、ということでしょうか?


この場合は

同様にロジクールのC905Mを複数台持っていて、且つそれにもC++にもDirectShowにも十分詳しい人が、一部始終が同じコードで同様の結果になることを確認した後で、コードを細かくチェックし原因を究明する、というのが最も確実な方法と思います。
(現状では私に言えることはこれぐらいです。)


もし全てのコードの提示が不可であれば、まず前提として
・USBカメラ14台の列挙は確実にできているか
・フレームレート以外についても変更はうまくいかないか

このあたりの情報もあるといいと思います。

それは想像以上の現場でした。

やはり、普通だったら
AvgTimePerFrameから
IAMStreamConfig::SetFormat
で出来るであろう、というところというわけで


>現在、ワークの隙間を検査する為にUSBカメラ14台を接続し隙間44箇所の検査をする装置を検討していますが、タクトが50秒、キャプチャーを工夫して25秒まで持って行きましたけど、さすが今回はカメラ指定させてもらいました。


すべて、ロジクールのC905Mに、ということでしょうか?


この場合は

同様にロジクールのC905Mを複数台持っていて、且つそれにもC...続きを読む

Qビデオキャプチャプログラミングについて

現在、思考錯誤しながら作っているプログラミングは以下の通りです。
#include <vcl.h>
#pragma hdrstop
#include <windows.h>
#include <vfw.h>
#include "Unit1.h"
//-----------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND hwnd;
//----------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
hwnd = capCreateCaptureWindow( NULL, WS_CHILD | WS_VISIBLE, 0, 0, 960, 720, this->Handle,100 );
// キャプチャウィンドウの作成
SendMessage(hwnd,WM_CAP_DRIVER_CONNECT,0,0L);
// キャプチャドライバに接続
capDriverGetCaps(hWndC, &CapDrvCaps, sizeof (CAPDRIVERCAPS));
if (CapDrvCaps.fHasOverlay)
capOverlay(hwnd,TRUE);
}

のプログラムでビデオキャプチャしたいと思っています。
現段階では、静止画は表示できるのですが、ストリーム再生(カメラからの映像垂れ流し)が実行できません。
capOverlayではデータの上書きができるのではないかと思うのですが、うまくいきません。
このプログラムのどこを直せば、うまく実行できるのでしょうか?
開発ツールはBorlandC++6.0です。
よろしくお願いします。

現在、思考錯誤しながら作っているプログラミングは以下の通りです。
#include <vcl.h>
#pragma hdrstop
#include <windows.h>
#include <vfw.h>
#include "Unit1.h"
//-----------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND hwnd;
//----------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
hwnd = capCreateCaptureWindow( NULL, WS_CHILD | WS_VISIBLE, 0, 0, 960, 72...続きを読む

Aベストアンサー

↓ここも参考になりそうですね。

http://laputa.cs.shinshu-u.ac.jp/~gtakano/prog.html

参考URL:http://laputa.cs.shinshu-u.ac.jp/~gtakano/prog.html

QDirectShowでの動画の保存

現在DirectShowで再生している動画をaviで保存しようとしています。
しかし動画の再生はできたのですが、aviに保存する方法がよくわかりません。
http://www.geekpage.jp/programming/directshow/video-capture-save-avi.php
このページを参考にして、ビデオデバイスの部分を再生している動画ファイルに変更したいのですがどのようにすればよいのでしょうか?

Aベストアンサー

 こんばんは。

 其れは、PCに接続したビデオカメラなどから上がってくる画像データを取り込むプログラムだと思います。
 ライブストリーミングは、ネットから動画データを受信していると思うので、扱いとしては、動画ファイルを開いて読み込み続ける方法と同一なのではないでしょうか。

 そのURLで言うと、以下辺りだと思います。
 http://www.geekpage.jp/programming/directshow/getcurrentimage.php

 後、「ISampleGrabber」と言うのも出て来ていますが、其方の方も、同じ事が出来るので、一通り拝見しておくと良いと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング