OpenCV VideoWriter无法打开

时间:2014-06-11 19:21:57

标签: linux opencv ffmpeg raspberry-pi codec

我无法在Raspberry Pi(Raspbian Weezy)上实例化并打开OpenCV VideoWriter来录制视频。

我的项目是用C ++编写的,但是我编写了一个最小的Python程序来演示这个问题。

https://gist.github.com/chriscollins/11ff2f43852e1c93dae8

我的C ++代码和上面的Python代码在我的Windows机器上运行都没有问题。有时候作者没有打开,但这是预料之中的 - 我没有安装所有列出的编解码器(编解码器列表来自Open CV源),但其中很多都有效正确。但是,在Raspberry Pi上,C ++代码和Python代码都失败了,VideoWriter永远不会被打开。在上面的Python代码中,writer.isOpened()在Raspberry Pi上运行时为每个编解码器返回false。

我已chown将目标目录添加到运行Python脚本的用户,并chmod将其设为777所以我不会#39} ; t相信这是一个权限问题。我认为它可能与我安装OpenCV或其某些依赖项的方式有关,但我不确定如何纠正它。

我使用的安装过程如下:

  1. 通过rpi-updateapt-get updateapt-get upgrade更新固件/套件。

  2. 通过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

  3. 下载http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip并将其解压缩至/root/opencv-2.4.9

  4. 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

  5. 来自同一目录的
  6. makemake install

  7. 各种其他OpenCV功能在Raspberry Pi(C ++或Python)中正常工作 - 例如通过VideoCapture查看网络摄像头,但我无法使VideoWriter正常工作。我很想尝试从源代码而不是apt-get安装FFMPEG,但由于make需要5个多小时才能在Raspberry Pi上运行,我希望我能找到答案在这里,而不是采用试错法!

    对于如何解决(或调试)这方面的任何建议表示赞赏。

    编辑:添加了cmake命令的输出(https://gist.github.com/chriscollins/d8060e03a6acd6d4336c

2 个答案:

答案 0 :(得分:2)

看看make的输出,我发现它对安装gstreamer说不,这是多媒体处理的必备条件。这是缺失的环节。

尝试 sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

这可以解决您的问题。

答案 1 :(得分:0)

我在Mac OS 10.9(Mavericks)上遇到了类似的问题。我解决了它是用ffmpeg支持重新安装Opencv(我不确定我是否在手动安装ffmpeg后重新安装它或者brew是否处理它)。在mac上安装OpenCV并使用ffmpeg支持只需一个命令 - brew install opencv --with-ffmpeg(此选项的说明 - >"使用ffmpeg支持构建")。我确定apt-get应该有类似的选择 您也可以尝试使用此解决方案 - http://www.ozbotz.org/opencv-installation-2-3-1/它已经很老了,但是经过一些小的更改应该适用于当前的OpenCV版本。