Linux下安装opencv with-ffmpeg解决无法读取视频的问题

1. 编译安装ffmpeg

下载源码,执行 ./configure --disable-yasm --enbale-shared --prefix=/usr/local/ffmpeg 即可。

2. 下载opencv并设置config

下载源码,并 git checkout 3.1.0,也可以是其他版本

cmake -D WITH_CUDA=OFF             -D CMAKE_BUILD_TYPE=Release             -D CMAKE_INSTALL_PREFIX=/home/packages/opencv/install             -D WITH_IPP=OFF             -D WITH_FFMPEG=ON              -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules             -D BUILD_TESTS=OFF             -D BUILD_PERF_TESTS=OFF             -D INSTALL_PYTHON_EXAMPLES=OFF             -D INSTALL_C_EXAMPLES=OFF             -D PYTHON_EXECUTABLE=$(which python)             -D BUILD_EXAMPLES=OFF ..

注意:

(1) 需要指定ffmpeg安装目录便于cmake找到, 否则会出现lib库找不到的问题,使得始终 FFMPEG:NO

https://blog.csdn.net/yangzhenzhen/article/details/62417021

export PKG_CONFIG_PATH=/home/packages/ffmpeg/lib/pkgconfig;$PKG_CONFIG_PATH

(2)设置ffmpeg的include路径到 bashrc文件中,并在ffmpeg/include目录下创建ffmpeg文件夹,将所有头文件拷到ffmpeg下,注意是拷贝文件不是文件夹。

(3)修改opencv中 modules/videoio/src/cap_ffmpeg_impl.hpp 代码,在最顶端添加宏定义

https://blog.csdn.net/guo_lei_lamant/article/details/81568346

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

否则会出现以下错误

error: ‘CODEC_FLAG_GLOBAL_HEADER’ was not declared in this scope

error: ‘AVFMT_RAWPICTURE’ was not declared in this scope

error: ‘CODEC_FLAG_GLOBAL_HEADER’ was not declared in this scope

for target ‘modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_ffmpeg.cpp.o‘ failed
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_ffmpeg.cpp.o] Error 1

原文地址:https://www.cnblogs.com/haiyang21/p/11029303.html

时间: 2024-08-02 22:00:47

Linux下安装opencv with-ffmpeg解决无法读取视频的问题的相关文章

【转】linux下安装opencv

Installation in Linux These steps have been tested for Ubuntu 10.04 but should work with other distros as well. Required Packages GCC 4.4.x or later CMake 2.8.7 or higher Git GTK+2.x or higher, including headers (libgtk2.0-dev) pkg-config Python 2.6

Linux下安装并使用Java开发opencv的配置

inux编译安装opencv 首先, linux下安装opencv其实不麻烦的, 参考文档即可完成: http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html 大致有以下几个步骤: 1) 安装gcc以及cmake等等乱七八糟的软件(不过ubuntu下默认差不多都有了吧…) sudo apt-get install build-essential python-dev cmake

linux 下安装adobe flash的关键。

记得第一次使用linux的时候真心觉得很麻烦,各种不适应.那时装个软件都弄得要生要死的.虽说最后也装了出来.第二次用linux就适应多了. 这是第一次查看的方法: linux下安装flash插件的解决方法 我们经常需要在linux服务器下查看在线文档,这时需要用到flash插件,以下讲解一下flash插件安装方法一(适用于ubuntu等linux系统): 1.在安装flash插件,最好把firefox升级到8.0版本: 2.从adobe官方网站下载flash的安装包(install_flash_

FFmpeg在Linux下安装编译过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下安装编译过程,用的是CentOS, 总体过程比较顺利,就是在ffmpeg等的时间稍长点.没什么技术难点.仅当记录. 关于FFmpeg FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包

linux下安装Oracle时交换空间不足的解决方法

摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本文的第二种方法, 至于第一种方法应该是安装系统时设置交换区. 1.使用分区: 在安装OS时划分出专门的交换分区,空间大小要事先规划好,启动系统时自动进行mount. 这种方法只能在安装OS时设定,一旦设定好不容易改变,除非重装系统. 2.使用swapfile:(或者是整个空闲分区) 新建临时swap

Linux下安装Android的adb驱动-解决不能识别的问题

Linux下安装Android的adb驱动-解决不能识别的问题 20141011更新: 老方法对我当时使用的一款设备一直都没有出现问题,最后遇到小米手机还有Android4.4版本的系统都会每次出现error: insufficient permissions for device问题,老方法的最后也说了这个问题的解决方法是什么.大意就是adb服务得以root用户身份启动,比较靠谱的方法是添加或者修改/etc/udev/rules.d/51-android.rules文件,内容如下: SUBSY

windows及linux下安装django simple captcha 遇到的各种问题及解决办法

转载自http://www.cnblogs.com/descusr/p/3225874.html 所有程序写完之后,验证码图片不显示,点击图片地址会提示如下错误,并且在linux下的纠正办法 用pil产生验证码出现:ImportError: The _imagingft C module is not installed 这个是由于PIL没有编译freetype导致的 查看 lib/python2.7/site-packages/PIL/ 看看 _imagingft.so 是否存在(至关重要,因

LINUX下安装pcre出现WARNING: &#39;aclocal-1.15&#39; is missing on your system错误的解决办法

1.下载安装包 wget https://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz 2.解压 tar -xzvf automake-1.15.tar.gz 3.安装 $ cd automake-1.15 $ ./configure --prefix=安装目录 $ make $ sudo mkdir -p /opt $ sudo make install 4.导入环境变量 export PATH=/opt/aclocal-1.15/bin:$PAT

在LINUX下安装DISCUZ出现的错误:advice_mysqli_connect 解决方法。

在用curl进行模拟调用时,curl接收内容会出现"Empty reply from server"的错误. 修改httpd.conf,在虚拟主机上添加如下内容:EnableSendfile offEnableMMAP off 在安装discuz时,无法安装,提示错误如下:advice_mysqli_connect 解决方法:重新安装php, 配置如下:cd php-5.3.27 ./configure --prefix=/usr/local/php --with-apxs2=/usr