OpenCV WITH_FFMPEG:无法停止流:设备的ioctl不合适

时间:2017-09-16 06:05:12

标签: python opencv ubuntu ffmpeg

我在Ubuntu 16.04上尝试使用OpenCV 3.2在Python 3.5中打开视频文件时收到错误“无法停止流:设备的不当ioctl”

在标记为重复之前,请注意我已查看过很多帖子,但没有一个帖子能解决我的问题。

我在conda下设置了一个虚拟环境。我知道有一种方法可以用conda安装OpenCV,但我不相信它包括我需要的ffmpeg或其他cuda能力。我已经为WITH_FFMPEG on和WITH_LIBV4L打开了OpenCV 3.2的源代码,我读过这也可以解决我的问题。我还将所有python3 cmake变量设置为指向虚拟环境中的python实例:

PYTHON3_LIBRARY               /home/brett/anaconda3/envs/opencvtest/lib/
PYTHON3_LIBRARY_DEBUG         
PYTHON3_NUMPY_INCLUDE_DIRS    /home/brett/anaconda3/envs/opencvtest/lib/python3.5/site-packages/numpy/core/include
PYTHON3_PACKAGES_PATH  /home/brett/anaconda3/envs/opencvtest/lib/python3.5/site-packages/

生成make配置后,我使用make -j8在build目录中编译,然后使用sudo make install进行安装。一切都运行成功,在安装中我看到它声明FFMPEG是ON。如果我现在在虚拟环境中启动Python,我可以导入cv2,但是当我尝试打开视频文件时,我看到上面的错误。我可以毫无问题地从网络摄像头捕获视频。在python中,命令print(cv2.__file__)显示目录:

/home/brett/anaconda3/envs/opencvtest/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so

所以它似乎使用了正确的OpenCV库。

我也尝试使用命令安装conda:

conda install -c menpo opencv3 ffmpeg

输出结果为:

The following NEW packages will be INSTALLED:

    ffmpeg: 3.1.3-0 menpo 

安装完成后,我仍然收到相同的错误消息。

我还需要做些什么才能让Python加载我在Conda下构建的OpenCV版本的视频文件?

0 个答案:

没有答案