ubuntu(linux)下安装openCV(ffmpeg导致的编译不通过的解决办法)

 

 

1.opencv-3.1.0/modules/videoio/src/cap_ffmpeg_impl.hpp:1313:21: error: ‘CODEC_FLAG_GLOBAL_HEADER’ was not declared in this scope
         c->flags |= CODEC_FLAG_GLOBAL_HEADER;

2.opencv-3.1.0/modules/videoio/src/cap_ffmpeg_impl.hpp:1525:35: error: ‘AVFMT_RAWPICTURE’ was not declared in this scope

 

以上两个错误均属于用一类型,由ffmpeg的版本问题引起。在最新版本的ffmpeg中对很多关键字进行了重命名,例如

CODEC_FLAG_GLOBAL_HEADER就被重新命名为AV_CODEC_FLAG_GLOBAL_HEADER,因此以老版本ffmpeg开发的opencv无法编译。解决方法也很简单,装旧版本的ffmpeg或者修改opencv的源码

以上错误的解决方案为:

在 opencv-3.1.0/modules/videoio/src/cap_ffmpeg_impl.hpp 里最顶端添加:

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020

其他由ffmpeg版本引起的错误处理方法类似,找到报错的宏对应的定义,将其复制到出错的源码文件头

 

  • 17
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
好的,下面是在Ubuntu安装OpenCV 4.6.0的步骤: 1. 更新系统 在终端中输入以下命令,更新系统并安装必要的软件包: ``` sudo apt update sudo apt upgrade sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev libgstreamer-plugins-base1.0-dev \ libgstreamer1.0-dev ``` 2. 下载OpenCV源码 在终端中输入以下命令,从OpenCV官网下载OpenCV 4.6.0源码: ``` wget -O opencv.zip https://github.com/opencv/opencv/archive/4.6.0.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.6.0.zip ``` 3. 解压源码 在终端中输入以下命令,解压OpenCV源码: ``` unzip opencv.zip unzip opencv_contrib.zip ``` 4. 编译安装OpenCV 在终端中输入以下命令,编译安装OpenCV: ``` cd opencv-4.6.0 mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.6.0/modules \ -D ENABLE_NEON=ON \ -D WITH_OPENMP=ON \ -D WITH_OPENGL=ON \ -D WITH_QT=OFF \ -D BUILD_TIFF=ON \ -D WITH_FFMPEG=ON \ -D WITH_GSTREAMER=ON \ -D WITH_TBB=ON \ -D BUILD_TBB=ON \ -D BUILD_TESTS=OFF \ -D WITH_EIGEN=ON \ -D WITH_V4L=ON \ -D WITH_LIBV4L=ON \ -D WITH_VTK=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D BUILD_opencv_python3=TRUE \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D BUILD_EXAMPLES=OFF .. make -j4 sudo make install sudo ldconfig ``` 5. 测试OpenCV 在终端中输入以下命令,测试OpenCV是否安装成功: ``` pkg-config --modversion opencv4 ``` 如果成功安装,终端输出的版本号应该为4.6.0。 现在,您可以在您的C++程序中使用OpenCV库了。祝您好运!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值