我使用相同的代码和相同的视频在两个环境上进行测试。首先我在“Opencv3.1.0 + windows(ubuntu) + VS2015”上测试,没有错误。但是当我使用“opencv3.1.0 + windows(ubuntu) + VS2015”时,没有错误。 4.1+ MacOS + Clion”,我收到错误:
Unexpected list type. Expected: hdrl. Got: movi.
OpenCV(3.4.1) Error: Assertion failed (chunk.m_size <= 0xFFFF) in readFrame, file /tmp/opencv-20180307-60086-ryy1b3/opencv-3.4.1/modules/videoio/src/container_avi.cpp, line 514
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(3.4.1) /tmp/opencv-20180307-60086-ryy1b3/opencv-3.4.1/modules/videoio/src/container_avi.cpp:514: error: (-215) chunk.m_size <= 0xFFFF in function readFrame
测试代码:
VideoCapture cap("test.avi");
if(!cap.isOpened())
{
cout << "error" << endl;
return -1;
}
Mat img;
double rate = cap.get(CV_CAP_PROP_FPS);
cout << rate << endl;
int total_rate = cap.get(CV_CAP_PROP_FRAME_COUNT);
cout << total_rate << endl;
while (true) {
if(!cap.read(img)) break;
}
如何解决这个问题以及为什么?谢谢。
最佳答案
也许不是最好的解决方案,但是,将扩展名“.avi”更改为“.mp4”或“.mkv”对我来说很合适。问题可能出在 opencv lib 上
关于video-capture - opencv 3.4.1 readFrame 中错误 : Assertion failed (chunk. m_size <= 0xFFFF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746279/