OpenCV4.5.1 VideoWriter 打不开,returns无论如何都失败,用Qt+MinGW

OpenCV4.5.1 VideoWriter cannot open, returns fail regardless, with Qt+MinGW

代码很简单:

cv::VideoWriter writer;
cout<<writer.open("./test001.avi",cv::CAP_FFMPEG,-1,25.0, frame.size(),1)<<endl;

我尝试了不同的编解码器和 0(据说用于未压缩),其中 none 有效并返回 false。然后我为编解码器尝试了 -1 select 希望 manu 会出现但仍然没有。

那么我认为这可能与缺少 ffmpeg DLL 文件有关。我将文件“opencv_videoio_ffmpeg_64.dll”复制到目录,但仍然没有。

无需尝试不同类型的 fourcc 枚举器来获得正确的枚举器,您可以获得视频(流媒体源)源的准确编解码器。简单点赞:

cv::VideoCapture cap(0);

int codecType = static_cast<int>(cap.get(cv::CAP_PROP_FOURCC)); 

我认为输出是错误的,因为编解码器类型不正确。此外,当我尝试一些与此相关的示例时,甚至有时它给出的输出为 false,它可以毫无问题地保存帧。

您使用重载函数的原因真的像 documentation 提到的那样方便吗?如果没有,最好使用另一个更标准的open function

抱歉浪费您的时间。我复制了错误的dll文件。它应该是 /bin 文件夹中的 opencv_videoio_ffmpeg451_64.dll,而不是 /3rdparty/ffmpeg 文件夹中的 opencv_videoio_ffmpeg_64.dll。

两个文件的内容应该是一样的,只是名字不同