通过OpenCV读取AVI视频,多路视频输出播放器
2013-01-16 16:13
253 查看
OpenCV在多线程下不能读取AVI视频新的解决办法:
问题情况:在OpenCV中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoPath ); ”语句后也会出现capture的内存取值为0x00000000,也就是在多线程中cvCaptureFromAVI不能多次使用,
cvReleaseCapture这个语句没有彻底执行.
解决方法:多线程使用前必须加一句CoInitialize(NULL);来对线程进行一个初始化;问题的本质原因是在OpenCV的打开视频文件等操作过程,其里面可能含有设置COM库的内容
,但是鄙人怎能这么清楚的了解呢
,故在相关设计中需要对Com库进行初始化,方可好用
。
其他思考:在多线程编程的过程中
,对于类似相关问题可能就是COM库的初始化问题
,本质上这些读取或设置权限都是在系统级别上的
,用户态的操作不大有可能
。
问题情况:在OpenCV中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoPath ); ”语句后也会出现capture的内存取值为0x00000000,也就是在多线程中cvCaptureFromAVI不能多次使用,
cvReleaseCapture这个语句没有彻底执行.
解决方法:多线程使用前必须加一句CoInitialize(NULL);来对线程进行一个初始化;问题的本质原因是在OpenCV的打开视频文件等操作过程,其里面可能含有设置COM库的内容
,但是鄙人怎能这么清楚的了解呢
,故在相关设计中需要对Com库进行初始化,方可好用
。
其他思考:在多线程编程的过程中
,对于类似相关问题可能就是COM库的初始化问题
,本质上这些读取或设置权限都是在系统级别上的
,用户态的操作不大有可能
。
相关文章推荐
- 初学OpenCV3,运行编程入门上读取并播放视频的原版程序,编译通过但是没有任何输出,已按网上博主各种方法试,还是没有结果,大家看怎么解决?
- 用OpenCV的VideoCapture类读取avi视频文件,并以帧流的形式显示出来!
- opencv读取avi视频并抽取帧
- OpenCV在多线程下不能读取AVI视频新的解决办法cvCaptureFromFile
- AVI编码方式及OpenCV读取AVI文件-解决opencv无法读AVI视频的问题
- 如何解决opencv读取avi视频文件一闪而过
- OpenCV在多线程下不能读取AVI视频的解决办法(转)
- OpenCv中avi视频的读取问题,以及内部格式要求
- 基于OpenCV+MFC的AVI视频文件读取及运动检测
- opencv读取avi视频解码问题
- OPENCV读取AVI视频失败 视频帧提取以及图片合成视频
- 基于OpenCV的AVI视频文件读取及运动检测
- AVI编码方式及OpenCV读取AVI文件-解决opencv无法读AVI视频的问题
- opencv读取视频数据输出人脸识别结果
- 关于opencv中不能读取视频avi的问题
- linux下opencv无法正确读取avi视频文件
- vs2010环境下mfc+ffmpeg+opencv读取任意格式视频的播放器
- opencv学习笔记 读取avi视频
- opencv读取avi视频并抽取帧
- 如何解决opencv读取avi视频文件一闪而过