我在实例化和打开OpenCV VideoWriter
来录制Raspberry Pi(Raspbian Weezy)上的video时遇到了麻烦。
我的项目是用C ++编写的,但是我写了一个最小化的Python程序来演示这个问题。
https://gist.github.com/chriscollins/11ff2f43852e1c93dae8
我的C ++代码和上面的Python代码在我的Windows机器上都没有问题。 有时作者不打开,但这是可以预料的 – 我没有安装所有列出的编解码器(编解码器列表来自Open CV源),但是其中很多都能正常工作。 但是,在Raspberry Pi上,C ++代码和Python代码都会失败, VideoWriter
永远不会被打开。 在上面的Python代码中,在Raspberry Pi上运行时, writer.isOpened()
为每个编解码器返回false。
我已经将目标目录chown
编辑到我正在运行Python脚本的用户,并且chmod
其设置为777
所以我不相信这是权限问题。 我认为这可能与我如何安装OpenCV或其一些依赖关系有关,但我不知道如何纠正它。
我使用的安装过程如下所示:
通过rpi-update
, apt-get update
和apt-get upgrade
更新固件/软件包。
通过apt-get
安装以下依赖apt-get
: libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev
将http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip下载并解压到/root/opencv-2.4.9
。
cd /root/opencv-2.4.9
并运行cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_ocl=OFF
。 cmake的输出可在https://gist.github.com/chriscollins/d8060e03a6acd6d4336c
从同一个目录下make install
。
其他各种OpenCVfunction在Raspberry Pi(C ++或Python)上正常工作 – 例如,通过VideoCapture
查看networking摄像头,但无法使VideoWriter
正常工作。 我很想尝试从源代码安装FFMPEG,而不是通过apt-get
,但是由于make
需要5个小时才能在Raspberry Pi上运行,所以我希望能够在这里find答案,而不是继续进行试验和错误接近!
任何build议如何解决(或debugging)这是赞赏。
编辑:添加cmake命令的输出( https://gist.github.com/chriscollins/d8060e03a6acd6d4336c )
看看make的输出结果,我发现它没有安装gstreamer,这是多媒体处理必须的。 这是缺少的链接。
试试sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
。
这应该可以解决你的问题。
我在Mac OS 10.9(Mavericks)上遇到过类似的问题。 我已经解决了重新安装OpenFV的ffmpeg支持(我不知道我是否重新安装后,手动安装ffmpeg或brew是否处理它)。 在mac上用ffmpeg支持安装OpenCV只是一个命令 – brew install opencv --with-ffmpeg
(这个选项的描述 – >“使用ffmpeg支持生成”)。 我相信apt-get
应该有类似的选择。
你也可以尝试这个解决方案 – http://www.ozbotz.org/opencv-installation-2-3-1/这是相当古老的,但经过小小的变化应该与当前的OpenCV版本。