c – OpenCV将视频保存到文件
发布时间:2020-12-16 05:02:41 所属栏目:百科 来源:网络整理
导读:我认为我的问题非常基本,但我在OpenCV中编写此代码,只是从网络摄像头捕获视频数据并将其保存到文件中.现在的问题是文件是在所需的目的地进行的,它最初的大小约为286字节.然后,当我将第一帧分配给指针时,大小增加到414字节.但是,当我运行整个代码时,保存的视
我认为我的问题非常基本,但我在OpenCV中编写此代码,只是从网络摄像头捕获视频数据并将其保存到文件中.现在的问题是文件是在所需的目的地进行的,它最初的大小约为286字节.然后,当我将第一帧分配给指针时,大小增加到414字节.但是,当我运行整个代码时,保存的视频的大小仍然是414字节.当然,因此我的媒体播放器无法播放该文件并说“不是QuickTime Player理解的格式”. VLC播放器也是如此.
这是我的相同代码: #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 解决方法
您是否尝试使用其他播放器打开文件?例如VLC ..
这是因为Quicktime和.avi不能相处得很好. 看看苹果documentation. 否则尝试更改视频编解码器,这是opencv reference. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |