C++ OpenCV视频捕获未加载文件
这似乎与OpenCV的特殊版本有关。然而,当我搜索了几乎所有的地方,特别是StackOverFlow,没有找到合理的答案 我正在尝试使用VideoCapture句柄在OpenCV中加载带有ffmpeg的视频文件。如果该文件是OpenCV samples目录中的tree.avi示例电影,则会加载该文件,但其他每个avi文件都会导致以下错误: 警告:打开文件时出错(../../modules/highgui/src/cap_ffmpeg_impl.hpp:526)C++ OpenCV视频捕获未加载文件,c++,opencv,computer-vision,video-processing,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文件似乎是检测到错误的文件,
hpp文件似乎是检测到错误的文件,而不是包含错误的文件。我只能假设ffmpeg与OpenCV不兼容,或者我应该开始寻找另一个库来打开视频文件,或者我应该假设OpenCV只适用于它自己的示例。如果有人有任何想法,请分享。我是否应该使用另一个库来打开所有不同类型的文件、编码格式而不是OpenCV?不要假设仅仅因为OpenCV使用FFmpeg,它就可以加载所有类型的视频格式,因为它不是真的
AVI是一个简单的容器,可以存储各种音频/视频编解码器。这列出了它所支持的格式。不要认为仅仅因为OpenCV使用FFmpeg,它就可以加载所有类型的视频格式,因为它不是真的
AVI是一个简单的容器,可以存储各种音频/视频编解码器。这列出了它所支持的格式。您可能需要编译自己的ffmpeg(从中获取最新快照),然后再次编译opencv。在配置步骤中检查您的输出,它应该说:
...
Video I/O--------------
Use QuickTime no
Use xine no
Use ffmpeg: yes
Use v4l yes
...
您可能需要编译自己的ffmpeg(从中获取最新快照),然后再次编译opencv。在配置步骤中检查您的输出,它应该是这样的:
...
Video I/O--------------
Use QuickTime no
Use xine no
Use ffmpeg: yes
Use v4l yes
...
OpenCV似乎有平台依赖性,最好针对每个平台进行编译,总结一下我对它的问题所做的所有搜索。我在视频捕获方面遇到了问题,它不是源于编解码器,而是源于OpenCV本身。我对OpenCV也有类似的问题,以至于它甚至无法打开JPG文件。通过重新编译,所有问题都为我解决了 对于那些不知道如何为Visual Studio编译OpenCV的人,这里有一个很好的教程:
OpenCV似乎有平台依赖性,最好针对每个平台进行编译,总结一下我对它的问题所做的所有搜索。我在视频捕获方面遇到了问题,它不是源于编解码器,而是源于OpenCV本身。我对OpenCV也有类似的问题,以至于它甚至无法打开JPG文件。通过重新编译,所有问题都为我解决了 对于那些不知道如何为Visual Studio编译OpenCV的人,这里有一个很好的教程:
在OpenCV 2.4.4中:只有OpenCV_ffmpeg244.dll(发布dll),而没有OpenCV_ffmpeg244d.dll(调试dll)
因此,请尝试在发布编译模式下 在OpenCV 2.4.4中:只有OpenCV_ffmpeg244.dll(发布dll),而没有OpenCV_ffmpeg244d.dll(调试dll)
因此,请尝试在发布编译模式下 您是否尝试过使用视频的完整路径名?有时编译结果会放在另一个文件夹中。是的,这不起作用。仅适用于示例avi。不要因为OpenCV使用FFmpeg就认为它可以加载各种视频格式,因为这不是真的。AVI是一个简单的容器,可以存储各种音频/视频编解码器。卡尔:是的,我想这是正确的。但是,我想知道你对如何处理这种情况的看法。你试过视频的完整路径名吗?有时编译结果会放在另一个文件夹中。是的,这不起作用。仅适用于示例avi。不要因为OpenCV使用FFmpeg就认为它可以加载各种视频格式,因为这不是真的。AVI是一个简单的容器,可以存储各种音频/视频编解码器。卡尔:是的,我想这是正确的。然而,我想知道你对如何处理这种情况的看法。我已经把在线视频处理放在一边,开始处理不同JPG文件中的每一帧。但是,CV也无法打开图像文件。甚至连baboon.jpg都不在自己的示例中。我一直在搜索,我发现你在一篇帖子里也有类似的问题。请问你是怎么解决的?是的,在Windows上重新安装了FFmpeg和OpenCV。曾经有一段时间,代码> CV::imRead()/Cyp>没有理由抛出异常,所以我放弃了C++接口,使用OpenCV的C接口,没有问题。卡尔,我发现OpenCV需要独立编译在每个平台上,没有任何解决办法。即使在我的电脑和笔记本电脑之间,我也需要重新编译整个简历!视频捕获的问题也通过重新编译解决了!我把在线视频处理放在一边,开始处理不同JPG文件中的每一帧。但是,CV也无法打开图像文件。甚至连baboon.jpg都不在自己的示例中。我一直在搜索,我发现你在一篇帖子里也有类似的问题。请问你是怎么解决的?是的,在Windows上重新安装了FFmpeg和OpenCV。曾经有一段时间,代码> CV::imRead()/Cyp>没有理由抛出异常,所以我放弃了C++接口,使用OpenCV的C接口,没有问题。卡尔,我发现OpenCV需要独立编译在每个平台上,没有任何解决办法。即使在我的电脑和笔记本电脑之间,我也需要重新编译整个简历!视频捕获的问题也通过重新编译解决了!