OpenCV VideoCapture无法打开

15

我正在尝试在运行Ubuntu 14.04的Amazon服务器上使用OpenCV的cv2 Python绑定,但似乎无法正确地使用VideoCapture。

我尝试如下方式打开默认捕获:

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

我在本地机器上进行了测试,结果如预期一样是正确的,因此我的OpenCV配置存在问题。我尝试了各种方法:

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

我现在有些没有头绪了。你有什么想法,可能出了什么问题?

编辑:OpenCV版本是2.4.9。


1
据我所知,“VideoCapture”是用于从摄像头捕获视频的,但亚马逊服务器没有摄像头。 - furas
1
VideoCapture也用于从文件中捕获视频,这正是我正在尝试做的。 - The Bearded Templar
据我所见,文档中的 VideoCapture(0) 表示 使用默认相机。可能需要更多的代码来完成这个操作。 - furas
是的,在阅读了您的评论后,我考虑到,也许它仅在本地工作是因为我在本地机器上有一个摄像头。然而,将 VideoCapture(0) 替换为 VideoCapture("/path/to/video/video.mp4") 会返回同样的错误。 - The Bearded Templar
2
谢谢 - 它实际上刚刚开始工作。我不完全确定为什么,但我最近做的事情是按照这里的说明重新安装了ffmpeg:http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu - The Bearded Templar
显示剩余2条评论
2个回答

9
我也遇到了类似的问题。以下是可能的解决方案:
  1. 检查您是否给出了正确的路径。

  2. 如果您使用pip安装了OpenCV,则它将无法正常工作。您可以根据官方文档中的说明删除OpenCV并重新安装。

  3. 通过pip安装的方式:
    pip install opencv-python 只安装主模块
    pip install opencv-contrib-python 安装主要和贡献模块,请使用此命令。


6
"pip install opencv-contrib-python" 解决了我的问题。谢谢!" - Joy

1
我曾经遇到过同样的问题,成功地解决了。 您需要使用 WITH_FFMPEG 标志构建 OpenCV:
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_GTK=ON -DWITH_FFMPEG=1 

你应该在FFMPEG部分的所有地方看到“YES”:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接