YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

iSightを使って録画する

動機

参加している講習会の課題だったが、Macな自分だけ問題が発生したためメモっておく。

方法

だいたいの流れはこんな感じになる。

#define OUT_VIDEO_FILE "output_video.avi"
capture = cvCaptureFromCAM(0);
CvVideoWriter* video = cvCreateVideoWriter(OUT_VIDEO_FILE, -1, 30, cvSize(640, 480), 1);
while(1) {
    if (capture) {
        frame = cvRetrieveFrame(capture);
        cvWriteFrame(video, frame);
    }
}

で、いきなりこれを実行すると落ちます。

OpenCV ERROR: Internal error (Cannot create data reference from file name)
in function cvCreateVideoWriter, cvcap_qt.cpp(1192)
Terminating the application...
called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...

Macでやる場合はあらかじめファイルを作っておいてあげないといけません。

# touch OUT_VIDEO_FILE_NAME

まとめ

Intelが配布しているだけあって、OpenCVはMacではまだまだ使い勝手はよくないのかな?