环境: win7 vs2017+opencv3.4.15
首先 vs2010 + opencv3.0.0 VideoCapture 读取本地视频成功和摄像头视频都是没有问题的,改用vs2017 + opencv3.4.15 读取本地视频也没有问题,读取摄像头视频就出现以下错误(0x10FCBF00 (opencv_world3415.dll)处(位于 faceTrackerCvPro.exe 中)引发的异常: 0xC0000005: 读取位置 0x03791010 时发生访问冲突。):
网上搜索,发现是VideoCapture 的默认参数是VideoCapture video(0,CAP_MSMF);
我原先代码(VideoCapture video(CAP_ANY);)改为新的代码(VideoCapture video(CAP_ANY,CAP_DSHOW);)就没问题了。
CAP_MSMF,CAP_DSHOW表示Media Foundation,DirectShow 两种流媒体处理接口。
参考:
https://zhuanlan.zhihu.com/p/410853128
https://blog.csdn.net/Baple/article/details/32353833