OpenCV VideoCapture未打开

时间:2014-07-11 19:26:06

标签: python opencv ubuntu-14.04

我试图在运行Ubuntu 14.04的亚马逊服务器上使用OpenCV的cv2 python绑定,但我似乎无法使VideoCapture正常工作。

我尝试打开默认捕获,如下所示:

import cv2
cap = cv2.VideoCapture(0)
cap.isOpened() #Returns false

我在本地计算机上测试了这个,并且按预期正常,所以我的开放CV配置有问题。我尝试过各种各样的事情:

  • 使用我确认的实际文件路径指向.mp4文件
  • 在第二行使用-1和1代替0
  • 安装ffmpeg(来自ppa,因为它在Ubuntu 14.04上默认不可用)并重建OpenCV
  • 完全删除我的OpenCV目录并使用脚本here
  • 重建
  • 验证并重新安装各种其他库,包括x264,gstreamer和gtk

我现在有点想法了。什么可能出错的想法?​​

编辑:OpenCV版本是2.4.9。

2 个答案:

答案 0 :(得分:1)

我也遇到过类似的问题。可能的解决方案:

  1. 检查您是否给出了正确的路径。

  2. 如果您使用pip安装了OpenCV,它将无法运行。使用pip安装OpenCV不是官方方式,因此请删除OpenCV并重新查看official documentation

答案 1 :(得分:0)

我遇到了同样的问题并成功解决了。 您应该使用WITH_FFMPEG标志构建OpenCV:

cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_GTK=ON -DWITH_FFMPEG=1 

你应该查看"是"在FFMPEG部分的任何地方:

Video I/O:
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  YES (ver 2.2.5)
--     FFMPEG:                      YES
--       avcodec:                   YES (ver 57.107.100)
--       avformat:                  YES (ver 57.83.100)
--       avutil:                    YES (ver 55.78.100)
--       swscale:                   YES (ver 4.8.100)
--       avresample:                YES (ver 3.7.0)
--     GStreamer:                   NO
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     UniCap:                      NO
--     UniCap ucil:                 NO
--     V4L/V4L2:                    NO/YES
--     XIMEA:                       NO
--     Xine:                        NO

如果你看不到它,那么需要通过apt安装下一个软件包(如果你使用的是Debian或Ubuntu Linux):

sudo apt-get install libav-tools libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libx264-dev