我知道已经有很多类似的问题,但不幸的是,他们都无法提供帮助。所以,这就是问题(我对OpenCV很新)。
尝试简单地打开并显示AVI文件。该文件存在且其路径正确。
int main( int argc, char** argv )
{
VideoCapture cap;
if(!cap.open(argv[1]))
{
printf("Failed to open %s\n", argv[1]);
return -1;
}
namedWindow("Video output", 1);
for(;;)
{
Mat curFrame;
cap >> curFrame;
imshow("Video output\n", curFrame);
if(waitKey(30) >= 0)
break;
}
return 0;
}
没有错误出现,open()返回false。
我之前使用mencode转换了文件。以下是有关该文件的信息:
boris@boris-ubuntu:~$ ffmpeg -i out.avi
ffmpeg version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Jun 12 2012 16:37:58 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, avi, from 'out.avi':
Metadata:
encoder : MEncoder svn r34540 (Ubuntu), built with gcc-4.6
Duration: 00:00:01.00, start: 0.000000, bitrate: 265458 kb/s
Stream #0.0: Video: rawvideo, yuv420p, 1280x720, PAR 1:1 DAR 16:9, 24 tbr, 24 tbn, 24 tbc
At least one output file must be specified
据我所知,视频格式为yuv420p,OpenCV支持。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
嗯,问题是OpenCV是在没有ffmpeg(或任何其他视频库)支持的情况下编译的。
感谢this great post,我成功安装了ffmpeg并重新编译了OpenCV,然后一切都很好。