可能是OpenCV2.4 highgui中存在一个错误,用于从Windows中的视频捕获帧?
我安装了两个预编译库,我编译的库,我可以完美地编译所有内容,如果我可以运行我的程序
它们是基于图像的.问题仅适用于视频.OpenCV总是崩溃在这个函数中:
virtual IplImage* retrieveFrame(int)
{
unsigned char* data = 0;
int step=0, width=0, height=0, cn=0;
if(!ffmpegCapture ||
!icvRetrieveFrame_FFMPEG_p(ffmpegCapture,&data,&step,&width,&height,&cn)) <-------CRASHES HERE
return 0;
cvInitImageHeader(&frame, cvSize(width, height), 8, cn);
cvSetData(&frame, data, step);
return &frame;
}
Run Code Online (Sandbox Code Playgroud)
这是在类cap_ffmpeg.cpp中,由VideoCapture调用.
我尝试了2.4.2和2.4.9版本.我的程序正在使用opencv2工作
更多信息
Windows 7的
使用cmake构建项目(很重要,因为可能是cmake没有构建/找到正确的编解码器)
VisualStudio 9 2008
OpenCV 2.4.2
编辑
看起来它实际上是一个bug,所以,我怎样才能解决这个问题并更改我的代码以便能够读取avi文件?
作为临时解决方案,我决定重新编码视频,以便OpenCV不使用ffmpeg.我使用VirtualDub和microsoft video 1压缩,它使用"msvidc32.dll"驱动程序.
它适用于我的所有视频,所以现在已足够,因为我可以继续在Windows中使用OpenCV.

| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |