我正试图在OpenCV 2.1,VS2008标准中读取avi文件2天,但没有运气。我经常在程序控制台中收到此消息:
编译器没有对齐堆栈变量。 Libavcodec被错误编译 并且可能非常慢或崩溃。这不是libavcodec中的错误, 但在编译器中。您可以尝试使用gcc> = 4.2重新编译。 不要向FFmpeg开发人员报告崩溃事件。
..我得到的帧率是0.5fps的播放。我尝试了各种AVI和MPEG文件,仍然有相同的结果。此外,使用网络摄像头的附带示例非常慢。使用OpenCV 1.1时我没有遇到这样的问题
我已尝试解决此问题的事项:
我用来读取文件的代码如下所示:
CvCapture* input_video = cvCreateFileCapture("c:\\data\test.avi");
// ...
while (true) {
// ...
frame = cvQueryFrame( input_video );
cvShowImage("test", frame);
// ...
}
任何人都可以帮助我吗?这让我疯狂:(
答案 0 :(得分:1)
那么,您还应该检查cvCaptureFromAVI()以替换cvCreateFileCapture()。也许这是一个好主意。
但我肯定会重新编译库。尝试在configure中添加此选项: - enable-force-stack-realign 或 - enable-memalign-hack
这些家伙似乎已经解决了这个问题: http://ffmpeg.arrozcru.org/forum/viewtopic.php?f=9&t=568
如果什么都不起作用,为什么不尝试Windows的预编译二进制文件? http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/
无论如何,您的问题是特定于软件的。我强烈建议您在适当的邮件列表和OpenCV相关论坛中寻找答案。