极简主义VideoCapture示例产生分段错误

时间:2016-08-29 13:41:19

标签: c++ opencv ffmpeg

我正在开展的一个项目突然开始出现分段错误,即使我保存的版本也知道它正在运行。

我调查了一下,并构建了一个正在发生的事情的小例子:

#include <opencv2/opencv.hpp>

int main()
{
  cv::VideoCapture capture("drop.avi");
  return 0;
}

根据documentation,我应该可以这样做:

  

C ++:VideoCapture :: VideoCapture(const string&amp; filename)

  

filename - 打开的视频文件的名称(例如video.avi)或图像序列

以下编译命令

g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` main.cpp

生成可执行文件而没有任何警告。 但是,当我执行程序时:

./a.out 
zsh: segmentation fault (core dumped)  ./a.out

根据互联网用户的说法,该问题可能与版本不兼容的ffmpegopencv有关。问题是,我没有看到任何地方记录,我不想花几天时间编译随机版本的opencv,也许无济于事。

有没有人知道发生了什么?

有用的信息

我当然愿意提供所需的任何补充信息。

软件版本

  • Opencv2 2.4.13-1
  • ffmpeg 1:3.1.3-1
  • ffmpeg 2.8.7-3

(好吧,显然我有两个版本的ffmpeg?)

系统信息

  • OS:Archlinux
  • Linux内核4.7.2-1

1 个答案:

答案 0 :(得分:0)

通过安装OpenCV 3.1

解决了这个问题