OpenCV 2.4.7与FFMpeg支持构建VS 2010(x86)

OpenCV 2.4.7 with FFMpeg support build with VS 2010 (x86)

本文关键字:2010 VS x86 构建 支持 FFMpeg OpenCV      更新时间:2023-10-16

我与新版本的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成功地构建了opencv(http://answers.opencv.org/question/24184/how-to-compile-opencv-247-with-qt-and-ffmpeg/)。但我无法获得VideoWriter&VideoCapture为我工作。所以我做了什么:

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

  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目录和库添加到highgui模块中。

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

  1. 在没有VfW->VideoWriter.open()的情况下构建OpenCV 2.4.7始终返回false
  2. 使用VfW->VideoWriter.open()构建OpenCV 2.4.7时返回true,对同一对象调用release()和open()始终返回false
  3. 无论是否使用ffmpeg->VideoCapture.open()都会发出一条错误消息,询问libiconv-2dll

有没有人也有同样的问题,能够向我指出我的错误?

提前谢谢。欢呼

OpenCV 2.4.7需要更新版本的FFmpeg才能工作,但这似乎不是问题所在,因为您已经涵盖了这一点。

问题的原因可能是错误#2281:VideoCapture::读取未压缩视频失败。

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