linux下opencv无法读取avi么?

这个问题在这里问可能真的不太合适,不过各位都是计算机研究的大神,这个小小问题应该不在话下哈~~

小弟用ssd训练完了模型想用c++代码测试一下视频检测的效果,但是原版提供的detect.cpp没能读入视频文件(尝试了avi和mp4都不行,cv::VideoCapture cap(file);载入视频,返回的cap.isOpened()结果都是0,读取失败)。

但是我在windows上的VS2013上用同样的代码却可以顺利读入同样的avi文件,返回的cap.isOpened()结果是1.这是为什么呢?

linux下是不是有其他的限制我没有发现呢,谢谢啦

最后附上简短的读取代码:
#include <caffe/caffe.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <algorithm>
#include <iomanip>
#include <iosfwd>
#include <memory>
#include <string>
#include <utility>
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
    std::string file = "/home/evence/caffe-ssd2/data/ssd_people/cpp_test/test_raw.avi";
    cout<<"path: "<<file<<endl;

    cv::VideoCapture cap(file);
    cout<<"cap.isOpened(): "<<cap.isOpened()<<endl;

    if (!cap.isOpened()) {
        LOG(FATAL) << "Failed to open video: " << file;
        return 0;
    }
  return 0;
}

================================================================================
问题已解决:
突然觉得如果问题解决了,应该在这里注一笔。
解决方法:重装系统,在配置opencv的时候参考这个链接(会有FFmpeg的配置过程,其他教程没有):http://blog.csdn.net/xuezhisdc/article/details/48691797
16年开始兴起视频下的检测识别和跟踪,希望能帮到做视频处理的同学们。。。
opencv问题.jpg
已邀请:

jiangqr

赞同来自:

ubuntu下opencv是可以打开avi,mp4的,可能是opencv版本或视频编码的问题。

要回复问题请先登录注册