我正在与新版本的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为我工作 . 所以我做了什么:
-
我从http://ffmpeg.zeranoe.com/builds/下载了最新的ffmpeg版本
-
我生成了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
- 我将ffmpeg的include目录和lib添加到highgui模块 .
我无法在没有任何错误的情况下编译OpenCV,但我所看到的行为并不是我所期望的:
-
没有VfW构建OpenCV 2.4.7 - > VideoWriter.open()返回false!
-
使用VfW构建OpenCV 2.4.7 - > VideoWriter.open()在当时返回true,在同一对象上调用release()和open()将始终返回false .
-
有或没有ffmpeg - > VideoCapture.open()给出一个错误消息,询问libiconv-2dll!
有些人有同样的问题,能够指出我的错误吗?
先感谢您 . 干杯
1 回答
OpenCV 2.4.7需要更新版本的FFmpeg才能工作,但这似乎没有问题,因为你有这个问题 .
The cause of your problem could be bug #2281 :VideoCapture::read fails on uncompressed video .
作为中间解决方案,我建议你降级到OpenCV 2.4.5 .