OpenCV VideoWriter 無法打開

OpenCV VideoWriter does not open

本文关键字:VideoWriter OpenCV      更新时间:2023-10-16

运行Windows 7,x64和OpenCV 2.4.8(预构建的二进制文件)。

尝试以下基本代码:

VideoWriter wrt;
wrt.open("video.mp4",  -1, 29, Size(480, 640));

这无济于事。编解码器选择的预期弹出窗口不会打开,编写器也不会打开(即调用 wrt.isOpen() 返回 false)。此外,编写器类 wrt.writer 中的内部指针保持 null。

试:

  1. 调试和发布 OpenCV 二进制文件。
  2. 根据此将opencv_ffmpeg248.dll复制到可执行文件的目录中。
  3. 传递专用编解码器代码,例如CV_FOURCC('M','P','4','2')等。
  4. 打电脑。

什么都没用。任何帮助/指导将不胜感激。

尝试 VideoWriter wrt; wrt.open("video.avi", -1, 29, Size(480, 640));

VideoCapture cap;
VideoWriter videoWriter;
cap.open(0);
if (!cap.isOpened())
{
    printf("can not open camera or video filen");
    return ;
}
string namemove("foo.AVI");
int fourCC = CV_FOURCC('M', 'J', 'P', 'G');
Size S = Size((int)cap.get(CAP_PROP_FRAME_WIDTH), (int)cap.get(CAP_PROP_FRAME_HEIGHT));
int fps = cap.get(CAP_PROP_FPS);
videoWriter.open(namemove, -1, cap.get(CAP_PROP_FPS), S, true);

if (!videoWriter.isOpened())
{
    cerr << "Cannot open output file " << endl;
    return ;
}
Mat img0;
namedWindow("image", WINDOW_NORMAL);
for (;;)
{
    cap >> img0;
    if (img0.empty())
        break;
    videoWriter << img0;
    imshow("image", img0);
    char k = (char)waitKey(30);
    if (k == 27) break;
}