我正在尝试将 openCV 库与 anaconda (Python) 一起使用,我能够导入 cv2 包,但到目前为止还没有任何东西能够访问 .mp4 文件。这是我不知道的 ffmpeg 的问题。因为我正在使用我的手机,所以我现在无法发布代码。但是,如果有人能给我一个 Linux 脚本或教程,可以帮助我在 python 上使用 openCV 以便能够分析具有 h264 编码的 mp4 视频,那就太好了
4 回答
我相信我正在寻找解决方案的路上,所以我发布这个来帮助其他人。
下载conda-recipes。坐在那个目录中,运行conda build x264
,然后conda build ffmpeg
.
conda-recipes/x264/build.sh
因为我的系统是 32 位的,所以我必须在每次conda-recipes/ffmpeg/build.sh
运行conda build
成功之前更改一行。我变了
export CFLAGS="-Wall -g -m64 -pipe -O2 -march=x86-64 -fPIC"
至
export CFLAGS="-Wall -g -m32 -pipe -O2 -march=x86-64 -fPIC"
我真的不明白我在做什么,但我猜这会有所帮助,现在两个构建都运行没有错误。
但是,opencv 似乎没有使用 FFmpeg;我仍然无法像在 conda 之外那样打开视频文件。如果我得到这个工作,我会更新。
conda 中的默认 OpenCV 包没有启用 ffmpeg。为了解决这个问题,我为 Linux-64 编译了 OpenCV,并在 CMake 中激活了 ffmpeg。我将包上传到我的 binstar 频道,您可以使用以下命令安装它:
conda install -c https://conda.binstar.org/jaimeivancervantes opencv
我想我只是设法使用https://github.com/menpo/conda-opencv3menpo-opencv3
在LinuxMint17(基本上是 Ubuntu 14)上为 python 3.5 构建 opencv3.1.0 。这个包也带有模块。惊人...menpo
opencv-contrib
首先,确保source deactivate
构建 conda 包需要在主 conda env 中完成。
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
正如说明所说,在默认设置中,FFMPEG 被禁用。所以,我必须在做之前编辑位于build.sh
的文件。conda-opencv3/conda
-DWITH_FFMPEG=0
-DWITH_FFMPEG=1
conda build conda/
如果conda build conda/
成功,最后你会看到类似这样的东西。
如果您想稍后将此包上传到 anaconda.org,请键入:
$ anaconda 上传 /home/用户名/anaconda3/conda-bld/linux-64/opencv3-3.1.0-py35_0.tar.bz2
这是我们刚刚构建的 conda 包的路径(我认为)。
所以,现在我们可以激活我们想要安装这个包的 conda env(例如 cv2-env)
source activate cv2-env
然后
conda install /home/username/anaconda3/conda-bld/linux-64/opencv3-3.1.0-py35_0.tar.bz2
安装此软件包后,我可以cv2.VideoCapture
用来加载我在 Windows 7 中录制的一些 avi 文件。
(menpo 甚至还有 opencv v2.4 https://github.com/menpo/conda-opencv但我没有尝试过。请注意,2 和 3 不能共存。)
+ 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