通过OpenCV读取AVI视频,多路视频输出播放器

来源:互联网 发布:生活中的大数据 编辑:程序博客网 时间:2024/05/18 14:14

OpenCV在多线程下不能读取AVI视频新的解决办法:
问题情况:
在OpenCV中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoPath ); ”语句后也会出现capture的内存取值为0x00000000,也就是在多线程中cvCaptureFromAVI不能多次使用, cvReleaseCapture这个语句没有彻底执行.
解决方法:多线程使用前必须加一句CoInitialize(NULL);来对线程进行一个初始化;问题的本质原因是在OpenCV的打开视频文件等操作过程,其里面可能含有设置COM库的内容疑问,但是鄙人怎能这么清楚的了解呢尴尬,故在相关设计中需要对Com库进行初始化,方可好用大笑
其他思考:在多线程编程的过程中得意,对于类似相关问题可能就是COM库的初始化问题惊讶,本质上这些读取或设置权限都是在系统级别上的微笑,用户态的操作不大有可能难过

原创粉丝点击