level 1
xxjohn2009
楼主
cap.open(glb_nCamIndex);
bool bRet = false;
bRet = cap.set(CV_CAP_PROP_FPS, 15);//帧率
bRet = cap.set(CV_CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G'));// # 视频流格式
bRet = cap.set(CV_CAP_PROP_FRAME_WIDTH, g_nCamWidth);//设置分辨率
bRet = cap.set(CV_CAP_PROP_FRAME_HEIGHT, g_nCamHeight);
//获取帧率和图像格式
double nFPS = cap.get(CV_CAP_PROP_FPS);//帧率
DebugMsg((NULL, "[%08d]<CamDll>帧率:%3.2f\n", GetLogTime(), nFPS));
DWORD nFourCC = cap.get(CV_CAP_PROP_FOURCC);//格式
DebugMsg((NULL, "[%08d]<CamDll>格式:%0.8X\n", GetLogTime(), nFourCC));
这段代码,在Win10下执行正常,获取的帧率为15,图像格式为:47504A4D 'GPJM',图像正常
但在Win7下就初始化失败了。 Win7下,获取到的帧率为0,图像格式为00000000, 判断cap.isOpened() 返回false。
如果把设置视频流格式放在分辨率设置之后。 Win10和Win7能够获取图像,但是按YUY2格式获取图像。
注图像宽度高度为3264x 2448, YUY2格式能够工作,但只有2帧/秒。 所以需要MJPG格式,但Win7失败
请知道原因的大神不吝回复,谢谢
2021年09月01日 04点09分
1
bool bRet = false;
bRet = cap.set(CV_CAP_PROP_FPS, 15);//帧率
bRet = cap.set(CV_CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G'));// # 视频流格式
bRet = cap.set(CV_CAP_PROP_FRAME_WIDTH, g_nCamWidth);//设置分辨率
bRet = cap.set(CV_CAP_PROP_FRAME_HEIGHT, g_nCamHeight);
//获取帧率和图像格式
double nFPS = cap.get(CV_CAP_PROP_FPS);//帧率
DebugMsg((NULL, "[%08d]<CamDll>帧率:%3.2f\n", GetLogTime(), nFPS));
DWORD nFourCC = cap.get(CV_CAP_PROP_FOURCC);//格式
DebugMsg((NULL, "[%08d]<CamDll>格式:%0.8X\n", GetLogTime(), nFourCC));
这段代码,在Win10下执行正常,获取的帧率为15,图像格式为:47504A4D 'GPJM',图像正常
但在Win7下就初始化失败了。 Win7下,获取到的帧率为0,图像格式为00000000, 判断cap.isOpened() 返回false。
如果把设置视频流格式放在分辨率设置之后。 Win10和Win7能够获取图像,但是按YUY2格式获取图像。
注图像宽度高度为3264x 2448, YUY2格式能够工作,但只有2帧/秒。 所以需要MJPG格式,但Win7失败
请知道原因的大神不吝回复,谢谢