我认为我的问题非常基础,但我正在使用OpenCV编写此代码,以简单地捕获来自网络摄像头的视频数据并将其保存到文件中。现在问题在于,该文件在所需位置被创建后,初始大小约为286字节。然后当我将第一帧分配给指针时,大小会增加到414字节。然而,当我运行整个代码时,保存的视频大小仍为414字节。当然,由于这个原因,我的媒体播放器无法播放该文件,并显示“不是QuickTime Player理解的格式。”VLC播放器也有相同的情况。
以下是相同的代码:
我不知道为什么会发生这种情况。我正在使用Mac OSX Lion并运行Xcode。
有人之前遇到过这个问题吗?如果是这样,我该怎么解决?
谢谢!
-Yash
以下是相同的代码:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main( int argc, char** argv ) {
CvCapture* capture;
capture = cvCreateCameraCapture(0);
assert( capture != NULL );
IplImage* bgr_frame = cvQueryFrame( capture );
CvSize size = cvSize(
(int)cvGetCaptureProperty( capture,
CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty( capture,
CV_CAP_PROP_FRAME_HEIGHT)
);
cvNamedWindow( "Webcam", CV_WINDOW_AUTOSIZE );
CvVideoWriter *writer = cvCreateVideoWriter( "/Users/user/Desktop/OpenCV_trial/OpenCV_trial/vidtry.AVI",
CV_FOURCC('D','I','V','X'),
30,
size
);
while( (bgr_frame = cvQueryFrame( capture )) != NULL )
{
cvWriteFrame(writer, bgr_frame );
cvShowImage( "Webcam", bgr_frame );
char c = cvWaitKey( 33 );
if( c == 27 ) break;
}
cvReleaseVideoWriter( &writer );
cvReleaseCapture( &capture );
cvDestroyWindow( "Webcam" );
return( 0 );
}
我不知道为什么会发生这种情况。我正在使用Mac OSX Lion并运行Xcode。
有人之前遇到过这个问题吗?如果是这样,我该怎么解决?
谢谢!
-Yash