Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV视频捕获未加载文件_C++_Opencv_Computer Vision_Video Processing - Fatal编程技术网

C++ OpenCV视频捕获未加载文件

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文件似乎是检测到错误的文件,

这似乎与OpenCV的特殊版本有关。然而,当我搜索了几乎所有的地方,特别是StackOverFlow,没有找到合理的答案

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

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


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需要独立编译在每个平台上,没有任何解决办法。即使在我的电脑和笔记本电脑之间,我也需要重新编译整个简历!视频捕获的问题也通过重新编译解决了!