我使用OpenCV中捕捉来自摄像机的视频和存储和avi文件,问题是,当我完成捕获和运行AVI文件,视频流看上去笨拙快...OpenCV捕获的视频运行速度比实时更快吗?
这里是代码
int isColor = 1;
int frameW = 640;
int frameH = 480;
int fps = 25;
CvCapture* capture = cvCaptureFromCAM(0);
assert(capture != NULL);
cvNamedWindow("Webcam", CV_WINDOW_AUTOSIZE);
CvVideoWriter *writer = cvCreateVideoWriter(
"out.avi",
CV_FOURCC('M','J','P','G'),
fps,
cvSize(frameW,frameH),
isColor
);
IplImage* frame = cvQueryFrame(capture);
while((frame = cvQueryFrame(capture)) != NULL) {
cvWriteFrame(writer, frame);
cvShowImage("Webcam", frame);
char c = cvWaitKey(33);
if (c == 27) break;
}
我不明白为什么当我在Windows 7 32位或64位和VS2008 &的OpenCV 2.3.1使用cvGetCaptureProperty(CV_CAP_PROP_FPS),这funcition荃返回0,那是假的,请帮帮我,谢谢
如何修复视频流看起来笨拙快速,如果我试过fps = 30,它会运行得非常快,我只是想让它像实时运行 – ALexF 2012-01-05 15:42:17
你试过fps = 15和fps = 60吗?它有所作为吗? – 2012-01-05 16:25:13
是啊,我understanded,我结合成功,我使用Commanline:ffmpeg.exe -i 1.wav -i 1.avi -acodec copy -vcodec copy output.avi但它有1个问题是:结合后,当我播放视频那么音频和视频不同步,例如:在视频显示之前发生的声音,如何同步音频和视频记录? – ALexF 2012-01-06 14:04:36