Ubuntu+Qt+Opencv3.4.0读取视频图片失败,出现错误:Unable to stop the stream: Inappropriate ioctl for device

Qt读取视频图片失败,出现错误:
Unable to stop the stream: Inappropriate ioctl for device
这是由于ffempeg文件没装好,在opencv文件中的build里打开终端,输入

rm -rf *                               //把原来的库先删掉,下面再编译一遍

(1) Build ffmpeg

下载ffmpeg安装包 http://ffmpeg.org/releases/ffmpeg-2.7.1.tar.bz2
在安装包目录下打开终端,输入

tar -xvf ffmpeg-2.7.1.tar.bz2
cd ffmpeg-2.7.1
./configure --enable-pic --extra-ldexeflags=-pie

如果出现 yasm/nasm not found or too old. 报错,重新输入

./configure --enable-pic --extra-ldexeflags=-pie --disable-yasm for a crippled build.
sudo apt-get install yasm

如果没有那就下面:

make -j4
sudo make install

(2) Build Opencv

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_QT=OFF -D WITH_V4L=ON -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic ..
make -j4

如果出现版本不匹配报错
在这里插入图片描述
在/opencv/opencv-3.2.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

然后再

make -j4
sudo make install
sudo make
sudo make install

重启Qt就可以了

原文连接:Ubuntu+Qt+Opencv3.4.0读取视频图片失败,出现错误:Unable to stop the stream: Inappropriate ioctl for device

版权声明:本文为weixin_43793181原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

我是为了解决debian中使用opencv读取视频进行目标检测时也出现Unable to stop the stream: Inappropriate ioctl for device的问题参考的这篇文章,原文十分的有用,我在此转载以方便自己记录,感谢原文博主!

另一方面,我在重新编译opencv3.3.1的时候还遇到了

make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
make: *** [Makefile:138: all] Error 2

这个问题
解决办法是:
找到cv2.cpp那个文件
在这里插入图片描述

翻到885行(可能每个人的不一样,就在这附近)
在这里插入图片描述
前面要加上个(char *)。

然后再编译,在这个地方停很长时间就可以通过了。

参考的原文连接:树莓派安装opencv报错:make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56…
在此感谢各位分享经验的博主!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值