アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在USBカメラからの画像を動画ファイルに保存するプログラムを作ろうとしています。
開発環境はVS2008のC#+OpenCvSharpでやろうとしています。

動画ファイルの保存する所までは出来たのですが、
保存されたファイルをWMPで見ようとすると、ファイルが破損しているか、ファイル形式がサポートされていませんと表示されます。
コーデックはインストール済みです。

そこでコーデックをチェックするアプリ(MMname2)を使って出来たファイルを調べると、下記のような情報が表示されます。

下記にはあがっていませんが、録画時間の値の表示がりません。
正常なファイルの場合は録画時間の値が表示されます。

MMname2 v2.5.4 2007/01/07版 (DB 20070711) - Windows XP Service Pack 3 (5.1.2600)
■基本情報
ファイル:test.avi
形式:AVI / サイズ:2,795,228 (2.66 MB) / 再生時間:
ファイル整合性:moviチャンクがない
■映像情報 (ストリーム数 1)
1)コーデック:XviD / Code:XVID/XVID / 略号:XviD / 640x480 24bit 15fps
■音声情報 (ストリーム数 0)
■字幕情報 (ストリーム数 0)
■コメント情報 (情報数 1)
1)ISFT Software Lavf51.12.1
■DirectShow情報
スプリッタ:
映像デコーダ:
音声デコーダ:
ステータス:オートメーション エラーです。

コードのサンプルそのままなのですが、
なにか環境が足りないのでしょうか?
私の環境だけなのでしょうか?
なにか情報がありましたらお願いします。

// (1)カメラに対するキャプチャ構造体を作成する
using (CvCapture capture = CvCapture.FromCamera(0))
{
// (2)キャプチャサイズを取得する(この設定は,利用するカメラに依存する)
int width = capture.FrameWidth;
int height = capture.FrameHeight;
// (3)ビデオライタ構造体を作成する
using (CvVideoWriter vw = new CvVideoWriter("cap.avi", "XVID", 15, new CvSize(width, height)))
using (CvFont font = new CvFont(FontFace.HersheyComplex, 0.7, 0.7))
using (CvWindow window = new CvWindow("Capture", WindowMode.AutoSize))
{
// (4)カメラから画像をキャプチャし,ファイルに書き出す
for (int num = 0; CvWindow.WaitKey(10) != '\x1b'; num++)
{
IplImage frame = capture.QueryFrame();
string str = string.Format("{0}[frame]", num);
frame.PutText(str, new CvPoint(10, 20), font, new CvColor(0, 255, 100));
vw.WriteFrame(frame);
window.ShowImage(frame);
}
}
}

A 回答 (1件)

最新のOpenCV 2.0ではどうなのかは知りませんが、1.1preでは動画の書き出しにバグがあるようです。

その疑いがあります。

もし1.1preをお使いなら、以下のOpenCVコミュニティに修正版のffopencv110.dllが上がっていたと思うので、それに差し替えてみてください。

http://tech.groups.yahoo.com/group/OpenCV/

参考URL:http://code.google.com/p/opencvsharp/issues/deta …
    • good
    • 0
この回答へのお礼

OpenCV 2.0用のライブラリを使うことで、保存した動画ファイルが再生することが出来ました。

ありがとうございました。

お礼日時:2009/12/26 16:57

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