3

ラズベリーパイでブラックボックスのようなものを作っています。

OpenCV 2.4.3 と多くのビデオ ライブラリを設定しました。( このサイトを参考にしました - Opencv がウェブカメラにアクセスできません)

そして、このサンプルコードをコンパイルしました。

#include <stdio.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "opencv/cxcore.h"

int main(void){
    CvCapture* capture = cvCaptureFromCAM(0);
    cvNameWindow("video", 1);

    double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
    CvSize frame_size = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
    CvVideoWriter* writer = cvCreateVideoWriter("out.avi", -1, fps, frame_size, 1);

    IpImage* frame;
    while(1){
        frame = cvQueryFrame(capture);
        cvShowImage("video", frame);
        if(cvWaitKey(38) == 27){
            break;
        }
    }

    cvReleaseVideoWriter(&writer);
    cvReleaseCapture(&capture);
    cvDestroyWindow("video");

    return 0;
}

このコードは正常にコンパイルされました。

しかし、このプロセスを実行すると、エラーが発生します。

OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend doesn't support this codec acutally.) in CvVideoWriter_GStreamer::open, file /home/pi/OpenCV-2.4.3/modules/highgui/src/cap_gstreamer.cpp, line 479
terminate called after throwing an instance of 'cv::Exception'
what(): /home/pi/OpenCV-2.4.3/modules/highgui/src/cap_gstreamer.cpp:479: error: (-210) Gstreamer Opencv backend doesn't support this codec acutally. in function CvVideoWriter_GStreamer::open

Aborted

そこで、「cvCreateVideoWriter」のコーデック部分を -1 から変更しました。「CV_FOURCC('M','J','P','G')」など、さまざまな種類のコーデックを試しました。

しかし、私はこの問題を解決できません。

どうすればこの問題を解決できますか? 私を助けてください..

4

0 に答える 0