【发布时间】:2011-06-29 10:48:39
【问题描述】:
我正在尝试编写可以将计算机中的视频流写入 avi 文件的录制软件。我正在使用 OpenCV 并附带 videoInput.h 来处理 directshow 代码。以防万一,我使用 Visual Studio 2010 作为编译器。
我遇到的问题是录制文件的播放速度比预览文件快。不是很多,但足以引起注意。示例:10 秒的预览大约是 7 秒的文件,所以每个人都移动得太快了一点。
if( bWriteVideo )
{
writer=cvCreateVideoWriter(szFileName,CV_FOURCC('D','I','V','X'),
fps,cvSize(width, height),isColor);
if( !writer ) return 1;
}
if( bDisplayVideo )
cvNamedWindow("video", 0);
while( key != 'q')
{
if(VI.isFrameNew(nSource))
{
VI.getPixels(nSource, yourBuffer1, false, true);
frame = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
frame->imageData = (char*)yourBuffer1;
frame->imageDataOrigin = frame->imageData;
if( !frame ) break;
// Display Image to Screen
if( bDisplayVideo )
cvShowImage( "video" , frame );
if( bWriteVideo )
cvWriteFrame( writer, frame );
}
key = cvWaitKey ( 1000 / fps );
}
【问题讨论】:
标签: c++ opencv directshow video-capture