我正在尝试将QImage转换为Mat Image并使用Opencv VideoWrite编写视频。问题是写一帧视频需要大约40ms。所以,我无法以60FPS写视频。我希望改进代码。目前,正在运行2个线程,一个尝试捕获QImage帧并从视频交换rgb帧,另一个线程写入视频。我在发布模式下使用Windows 10,8GB RAM,并在visual studio 2015中使用opencv 3.0进行编译。我愿意使用opengl,Qt或directshow来表现。
VideoWrite videoWrite;
cv::Size frameSize(1920,1080);
videoWrite.open(filename,CV_FOURCC('D','I','V','X'),60, frameSize, true);
videoWrite << cv::Mat(myImage.height(), myImage.width(), CV_8UC3, (uchar*)myImage.bits(), myImage.bytesPerLine());