如何为opencv安装编解码器?

时间:2015-03-04 21:17:59

标签: c++ opencv ffmpeg

我正在尝试使用以下代码编写一个从网络摄像头捕获视频的程序:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{

    Mat frame;
    VideoCapture cap(1);
    char key;
    String outputName = "output.avi";

    VideoWriter outputVideo;
    Size size = Size(cap.get(CV_CAP_PROP_FRAME_WIDTH), cap.get(CV_CAP_PROP_FRAME_HEIGHT));



    outputVideo.open(outputName, CV_FOURCC('D', 'I', 'V', 'X'), cap.get(CV_CAP_PROP_FPS), size, true);

    if (!outputVideo.isOpened())
    {
        cout << "Could not open the output video for write: " << outputName << endl;
        return -1;
    }
    cout << "size " << size.width << " x " << size.height << endl;

    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    cap.set(CV_CAP_PROP_EXPOSURE, -8);


    while (true){
        bool success = cap.read(frame);
        if (!success){
            cout << "Cannot read frame from file" << endl;
            return -2;
        }
        outputVideo.write(frame);
        imshow("Display window", frame);
        key = waitKey(1);
        if (key == ' '){
            cout << "Video ended due to key stroke" << endl;
            return 1;
        }
    }


    return 0;
}

程序似乎无法打开outputVideo,因为它总是返回-1。我认为我可能没有安装编解码器divx,但是我已经从k-lite编解码器包和divx安装了它,但它仍然无效。

有人可以告诉我如何安装编解码器以便opencv识别

我在Windows 7和Visual Studio 2013上使用OpenCV 2.4.10。

0 个答案:

没有答案