我正在使用openCV从摄像机捕获视频并将其存储到avi文件,问题是当我完成捕获并运行avi文件时,视频流看起来笨拙地...
这是代码
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;
}
最佳答案
cvSetCaptureProperty和cvGetCaptureProperty并不总是有效。另外,您是否尝试过fps = 30?
还值得注意的是,您需要以与捕获fps相同的fps播放视频。
https://stackoverflow.com/questions/8730251/