极简视频捕获示例产生分割错误

Minimalist VideoCapture example produces a Segmentation Fault

本文关键字:分割 错误 视频      更新时间:2023-10-16

我正在做的一个项目突然开始出现分段错误,即使我保存了一个版本,并且知道它可以工作。

我调查了一下,构造了一个小例子来说明发生了什么:

#include <opencv2/opencv.hpp>
int main()
{
  cv::VideoCapture capture("drop.avi");
  return 0;
}

根据文档,我应该能够这样做:

c++::VideoCapture(const string&文件名)

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 ?)

系统信息
  • 操作系统:Archlinux
  • Linux kernel 4.7.2-1

安装OpenCV 3.1解决问题