【问题标题】:opencv codecs under WindowsWindows下的opencv编解码器
【发布时间】:2013-11-21 23:21:17
【问题描述】:

我按照these 的说明为 python 安装 opencv(即将 pyd 文件复制到站点包中)。它工作正常,除了 opencv 无法打开我尝试打开的任何视频文件:

capture = cv2.VideoCapture("some_file.avi") 
capture.isOpened() # False

我尝试了使用 h264 和 mpeg2 编码的视频,但没有成功。 Windows 7 x64、32 位 Python 2.7.5 和 opencv 2.4.7。所以这大概意味着opencv找不到正确的编解码器,但我确保opencv_ffmpeg247.dll在路径中。

【问题讨论】:

标签: python opencv


【解决方案1】:

从存储库安装newest FFmpeg available

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

您安装的版本可能与 OpenCV 2.4.7 不兼容。检验这一假设的最简单方法是将 OpenCV 降级到 2.4.5 版。

请记住:cv2.VideoCapture("some_file.avi") 只有在 some_file.avi 与您的源代码位于同一目录中时才会成功。如果不是这种情况,您应该使用文件的完整路径!

我想从这个论坛引用another post

问题的原因可能是错误 #2281:VideoCapture::read fails on uncompressed video

无论如何,请尝试 OpenCV 2.4.5 并告诉我们它是否有效。

【讨论】:

  • 是的,我希望只有在文件实际存在时才能打开文件的调用才能成功;)(但更严重的是:对 open() 的正常调用工作正常,我尝试了绝对路径也)。我正在使用opencv附带的ffmpeg dll,那么为什么那些会失败而最新的成功呢?如果没有很好的理由说明为什么这样做会有所帮助,我真的不期待在 Windows 下编译任何更大的 C 库。
  • 最简单的方法是回到 2.4.5。这样做并告诉我进展如何。 ;)
  • 显然是 opencv 2.4.7 中的一个错误。它附带了一个与其附带的 python 模块不兼容的 ffmpeg dll。我想我应该为那个 sigh 提交一个错误,回到 2.4.5 解决了这个问题。通常的游戏 - 只要允许我就会奖励赏金。
【解决方案2】:

我想我正在为同样的问题苦苦挣扎 (OpenCV 2.4.7 with FFMpeg support build with VS 2010 (x86))。 只是为了确保您尝试打开现有视频,包括完整路径,对吗?

最好的

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多