OpenCV VideoWriter 打不开
Posted
技术标签:
【中文标题】OpenCV VideoWriter 打不开【英文标题】:OpenCV VideoWriter will not open 【发布时间】:2014-08-01 23:37:43 【问题描述】:我在实例化和打开 OpenCV VideoWriter
以在 Raspberry Pi (Raspbian Weezy) 上录制视频时遇到问题。
我的项目是用 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
ed 给了我正在运行 Python 脚本的用户,并将 chmod
ded 给了777
,所以我不认为这是一个权限问题。我认为这可能与我安装 OpenCV 或其某些依赖项的方式有关,但我不确定如何纠正它。
我使用的安装过程如下:
通过rpi-update
、apt-get update
和apt-get upgrade
更新固件/软件包。
通过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
和 make install
来自同一目录。
其他各种 OpenCV 功能在 Raspberry Pi(C++ 或 Python)上正常工作 - 例如。通过VideoCapture
观看网络摄像头,但我无法让VideoWriter
工作。我很想尝试从源代码而不是通过 apt-get
安装 FFMPEG,但由于 make
在 Raspberry Pi 上运行需要 5 个多小时,我希望我能在这里找到答案,而不是继续试用和错误方法!
感谢任何有关如何解决(或调试)此问题的建议。
编辑:添加了 cmake 命令的输出 (https://gist.github.com/chriscollins/d8060e03a6acd6d4336c)
【问题讨论】:
this 关闭了吗? 恐怕不是。这涉及让 Raspberry Pi 摄像头工作:我使用的是标准网络摄像头,但我无法让 OpenCV 的一个特定部分正常工作(VideoWriter)。cmake
命令的完整输出可能有用。
今晚我将使用cmake
的输出更新问题。
我用cmake
的输出更新了问题:gist.github.com/chriscollins/d8060e03a6acd6d4336c
【参考方案1】:
查看 make 的输出,我发现它拒绝安装 gstreamer,这是多媒体处理的必要条件。这是缺少的链接。
试试
sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
.
这应该可以解决您的问题。
【讨论】:
在全新安装 Mint 时为我解决了问题。【参考方案2】:我在 Mac OS 10.9 (Mavericks) 上遇到过类似问题。我已经解决了它是重新安装支持 ffmpeg 的 Opencv(我不确定我是否在手动安装 ffmpeg 后重新安装了它,或者 brew 是否处理了它)。在 mac 上,安装支持 ffmpeg 的 OpenCV 只是一个命令 - brew install opencv --with-ffmpeg
(此选项的描述 ->“支持 ffmpeg 构建”)。我确定apt-get
应该有类似的选项。
你也可以试试这个解决方案 - http://www.ozbotz.org/opencv-installation-2-3-1/ 它已经很老了,但是经过小的改动应该可以与当前的 OpenCV 版本一起使用。
【讨论】:
在没有任何信息的情况下投反对票为什么 - 如果您想获得任何帮助,您可以做的最糟糕的事情.. 我没有对你投反对票,但是,我明白为什么有人可能会这样做。我不是通过apt-get
安装 OpenCV,而是从源代码构建它。 2.4 中有一些我想使用的功能在 2.3 中没有:目前只有 2.3 可通过 Raspberry Pi 上的apt-get
获得。据我所知,我已经在启用 FFMPEG 支持的情况下构建它,所以很遗憾,您的回答与我的具体情况并不真正相关。以上是关于OpenCV VideoWriter 打不开的主要内容,如果未能解决你的问题,请参考以下文章
opencv装在D盘里为啥打不开啊?一直都是弹出来这个,求高手指点。