我正在尝试在anaconda(Python)中使用openCV库,我能够导入cv2包,但是迄今为止没有任何东西能够访问.mp4文件。这是一个与ffmpeg有关的问题,我对此一无所知。由于我正在使用手机,现在无法发布代码。但如果有人能够给我一个Linux脚本或教程,可以帮助我在python上使用openCV来分析具有h264编码的mp4视频,那就太好了。
我相信我已经在解决问题的道路上取得了很大进展,因此我将此发布以帮助其他人。
下载conda-recipes。进入该目录,运行conda build x264
,然后再运行conda build ffmpeg
。
由于我的系统是32位的,在成功运行conda build
之前,我不得不分别更改conda-recipes/x264/build.sh
和conda-recipes/ffmpeg/build.sh
中的一行代码。我做出了如下更改:
export CFLAGS="-Wall -g -m64 -pipe -O2 -march=x86-64 -fPIC"
to
export CFLAGS="-Wall -g -m32 -pipe -O2 -march=x86-64 -fPIC"
我并不完全理解我在做什么,但我猜想这会有所帮助,现在两个构建都没有错误了。
然而,OpenCV似乎没有使用FFmpeg;我仍然无法像在conda之外那样打开视频文件。如果我能让它工作,我会更新的。
menpo-opencv3
(位于https://github.com/menpo/conda-opencv3)构建了Python 3.5的OpenCV 3.1.0。这个menpo
包还附带了opencv-contrib
模块。太棒了...source deactivate
,因为构建conda包需要在主conda环境中完成。conda install conda-build
git clone https://github.com/menpo/conda-opencv3
cd conda-opencv3
conda config --add channels menpo
conda build conda/
conda install /PATH/TO/OPENCV3/PACKAGE.tar.gz
conda build conda/
之前,我必须编辑位于conda-opencv3/conda
中的build.sh
文件,将-DWITH_FFMPEG=0
更改为-DWITH_FFMPEG=1
。conda build conda/
成功,您将在末尾看到类似于以下内容:cv2.VideoCapture
来加载在Windows 7上录制的一些avi文件了。conda中默认的OpenCV包没有启用ffmpeg。为解决此问题,我使用CMake编译了启用了ffmpeg的Linux-64 OpenCV软件包,并将其上传到我的binstar频道。您可以使用以下命令安装它:
conda install -c https://conda.binstar.org/jaimeivancervantes opencv
+ curl -L https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz -o /home/vasu/anaconda2/conda-bld/work/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
Command failed: /bin/bash -x -e /home/vasu/anaconda2/conda-bld/work/opencv-3.1.0/conda_build.sh