1

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

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

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

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

4

4 回答 4

3

OpenCV 似乎具有平台依赖性,并且最好为每个平台编译,以总结我为我的问题所做的所有搜索。我对 VideoCapture 有问题,它不是来自编解码器,而是来自 OpenCV 本身。我在使用 OpenCV 时遇到了类似的问题,以至于它甚至无法打开 JPG 文件。通过重新编译它,一切都为我解决了。

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

于 2013-04-13T19:43:47.237 回答
2

不要以为OpenCV 使用 FFmpeg 就可以加载各种视频格式,因为事实并非如此

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

于 2013-04-09T15:52:00.383 回答
2

在 OpenCV 2.4.4 中:只有 opencv_ffmpeg244.dll(发布 dll),没有 opencv_ffmpeg244d.dll(调试 dll)

所以尝试发布编译模式!

于 2013-07-22T08:08:31.413 回答
1

您可能需要编译自己的 ffmpeg(从这里获取最新的快照),然后再次编译 opencv。在配置步骤中检查您的输出,它应该是这样的:

...
Video I/O--------------
Use QuickTime      no
Use xine           no
Use ffmpeg:        yes
Use v4l            yes
...
于 2013-04-09T16:54:05.173 回答