使用VS 2010(x86)构建FFMpeg的OpenCV 2.4.7

时间:2013-11-22 10:49:28

标签: c++ opencv video ffmpeg

我正在与新版本的OpenCV 2.4.7战斗将近一周(上一次使用2.4.2)。我对新设置的动机是,我使用Videowriter解决了未压缩的灰度视频(http://answers.opencv.org/question/3603/videowriter-videocapture-and-uncompressed-avi/)的问题。在https://github.com/Itseez/opencv/pull/1516中,“akarsakov”建议在没有vfw支持的情况下构建OpenCV,并通过ffmpeg打开未压缩的视频。这就是我试图做的事情。我基本上遵循了此视频中提到的说明:http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html

我已经使用Qt 5.1.1(http://answers.opencv.org/question/24184/how-to-compile-opencv-247-with-qt-and-ffmpeg/)成功构建了opencv。但是我无法获得VideoWriter& VideoCapture为我工作。所以我做了什么:

  1. 我从http://ffmpeg.zeranoe.com/builds/下载了最新的ffmpeg版本

  2. 我生成了vs2010项目,禁用了VfW并启用了ffmpeg:

    Video I/O:
    
    Video for Windows:           NO
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      YES (prebuilt binaries)
      codec:                     YES (ver 55.18.102)
      format:                    YES (ver 55.12.100)
      util:                      YES (ver 52.38.100)
      swscale:                   YES (ver 2.3.100)
      gentoo-style:              YES
      OpenNI:                    NO
    OpenNI PrimeSensor Modules:  NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    DirectShow:                  YES
    Media Foundation:            NO
    XIMEA:                       NO
    
  3. 我将ffmpeg的include目录和lib添加到highgui模块。

  4. 我无法在没有任何错误的情况下编译OpenCV,但我看到的行为并不是我所期望的:

    1. 不使用VfW构建OpenCV 2.4.7 - > VideoWriter.open()总是返回false!
    2. 使用VfW构建OpenCV 2.4.7 - > VideoWriter.open()在当时返回true,在同一个对象上调用release()和open()总是返回false。
    3. 有无ffmpeg - > VideoCapture.open()给出了一条错误消息,要求提供libiconv-2dll!
    4. 是否有人遇到同样的问题并能指出我的错误?

      提前谢谢你。 欢呼声

1 个答案:

答案 0 :(得分:1)

OpenCV 2.4.7需要更新版本的FFmpeg才能正常工作,但这似乎没有问题,因为你有这个问题。

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

作为中间解决方案,我建议你降级到OpenCV 2.4.5。