OpenCV视频捕获不加载文件

时间:2013-04-09 14:17:51

标签: c++ opencv computer-vision video-processing

这似乎是与OpenCV的特殊版本相关的问题。但是,当我几乎到处搜索并特别是StackOverFlow时,没有找到合理的答案。

我正在尝试使用VideoCapture句柄在OpenCV中使用ffmpeg加载视频文件。如果文件是OpenCV samples目录中的tree.avi示例影片,则会加载该文件,但是每个其他avi文件都会导致以下错误:

  

警告:打开文件时出错(../../ modules / highgui / src / cap_ffmpeg_impl.hpp:526)

hpp文件似乎是检测到错误的文件,而不是包含错误的文件。我只能假设ffmpeg与OpenCV不兼容,我应该开始寻找另一个库来打开视频文件,或者我应该假设OpenCV仅适用于自己的样本。如果有人有任何想法,请分享。我是否应该使用其他库来打开所有不同类型的文件,使用编码而不是OpenCV格式?

4 个答案:

答案 0 :(得分:3)

OpenCV似乎具有平台依赖性,并且更好地为每个平台编译,总结我为我的问题所做的所有搜索。我遇到的VideoCapture问题不是来自编解码器,而是来自OpenCV本身。我在OpenCV方面遇到类似问题甚至无法打开JPG文件。所有这些都通过重新编译得到了解决。

对于那些不知道如何为Visual Studio编译OpenCV的人,这是一个很好的教程: Installing OpenCV 2.4.3 in Visual C++ 2010 Express

答案 1 :(得分:2)

不要假设仅仅因为OpenCV使用FFmpeg它可以加载各种视频格式,因为它不是真的

AVI 是一个简单的容器,可以存储各种音频/视频编解码器。 OpenCV has page列出了它支持的格式。

答案 2 :(得分:2)

在OpenCV 2.4.4中:只有opencv_ffmpeg244.dll(发布dll)而不是opencv_ffmpeg244d.dll(debug dll)

所以尝试在发布编译模式下!

答案 3 :(得分:1)

您可能需要编译自己的ffmpeg(从here获取最新快照),然后再次编译opencv。在 configure 步骤中检查输出,它应该说类似于:

...
Video I/O--------------
Use QuickTime      no
Use xine           no
Use ffmpeg:        yes
Use v4l            yes
...