(Opencv 3.4.1) Assertion failed (chunk.m_size <= 0xFFFF) in readFrame

当我在Opencv3.4.1下执行曾经在opencv3.1.0下撰写的程序之后,报错如下

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

开始假设了好多原因,可能是我在Mac上编译,没有可识别avi格式的解码工具,后来测试发现,是因为视频太大导致的,单帧图像太大。因为不知道怎么解决,在网上求助,没有什么好的结果,后来在GitHub 上找到了相关的issue
issue#11126

之前是使用brew在Mac上安装的opencv3.4.1,没有源码,于是卸载掉opencv3.4.1,然后下载源码,采用cmakeGUI进行编译,网上有教程,编译之前注释掉container_avi.cpp里面的:

CV_Assert(chunk.m_size <= 0xFFFF)

之后Clion完美运行程序。

至于这个异常语句的原因,应该是opencv版本新加的,是为了限制memory的使用,不过如果正常跑视频,忽略掉应该也是可以满足需求的,不会影响大体。

在此感谢Github上各位给的解决办法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,983评论 25 708
  • 为什么要安装OpenCV_contrib 而实际上opencv还添加了一个额外的库,以供更需要的人使用,其中就包括...
    Fantesla阅读 4,078评论 0 2
  • 今晚维也纳市中心如节日般人声鼎沸,不懂德语且愚笨的我,连蒙带猜认出一个应该不外是“博物馆”之类的单词后,就进一步逮...
    游不停的鱼阅读 566评论 0 0
  • 1.你生命中所发生的一切,都是你吸引来的。 2.我想什么,我就能得到什么! 3.宇宙中最强有力的法则就是吸引力法则...
    娜灵蛇之珠阅读 1,014评论 0 0
  • 无箫无酒意悠悠, 梦里销魂梦醒休。 花下难忘频握手, 灯前犹记一低头。 春风绾就千千结, 秋雨织成密密愁。 回首相...
    仙女下凡尘阅读 428评论 9 15