64,682
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <time.h>
#include <cstring>
#include "cv.h"
#include "highgui.h"
using namespace std;
void main()
{
IplImage * pFrame=0;//当前读入视频帧
CvCapture * capture=0;
//capture=cvCaptureFromAVI(argv[1]);
capture=cvCaptureFromAVI("hiv00044_201289213430.avi");
if(!capture)
{
printf("读取视频失败!\n");
exit(0);
}
char *pszCurrTime = (char*)malloc(sizeof(char)*25);
memset(pszCurrTime, 0, sizeof(char)*25);
time_t now;
time(&now);
strftime(pszCurrTime, 25 , "F:\\%Y%m%d%H%M%S.avi", localtime(&now));
printf("%s",pszCurrTime);
CvVideoWriter * writer = 0 ;
int isColor = 1;
int fps = 25;
int frameW = 500;
int frameH = 500;
writer = cvCreateVideoWriter(pszCurrTime,CV_FOURCC('P', 'I', 'M','1'),fps,cvSize(frameW,frameH),isColor);
int flagFrame = 0;
int key = 0;
for(;;)
{
pFrame=cvQueryFrame(capture);
if(!pFrame)
{
break;
}
cvShowImage("Video",pFrame);
if(flagFrame < 200)
{
flagFrame++;
cvWriteFrame(writer,pFrame);
}
else
{
flagFrame = 0;
//cvReleaseVideoWriter(&writer);
memset(pszCurrTime,0,sizeof(char)*25);
time(&now);
strftime(pszCurrTime, 25 , "F:\\%Y%m%d%H%M%S.avi", localtime(&now));
printf("%s",pszCurrTime);
// CvVideoWriter * writer = 0 ;
writer = cvCreateVideoWriter(pszCurrTime,CV_FOURCC('P', 'I', 'M','1'),fps,cvSize(500,500),isColor);
cvWriteFrame(writer,pFrame);
}
key=cvWaitKey(10);
}
cvReleaseCapture(&capture);//自动释放pFrame的内容
cvReleaseVideoWriter(&writer);
cvDestroyWindow("Video");
cvWaitKey(0);
}