我使用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