opencv存储视频时存储大小为0以及打开是乱码的解决方法
2012-11-13 14:31
381 查看
CvCapture *capture=cvCaptureFromAVI(m_avipath);
if (!capture)
{
fprintf(stderr,"Could not initialize capturing...\n");
return;
}
int outCompressCodec = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FOURCC);
double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);//帧率
int framecount=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);
int i=0;
CvVideoWriter *writer=0;
int frameW=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH);
int frameH=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT);
writer=cvCreateVideoWriter("f:\\2.avi",outCompressCodec,
fps,cvSize(frameW,frameH),1);
IplImage *outimg=0;
for (i=0;i<framecount;i++)
{
outimg=cvQueryFrame(capture);
// if(i%10==0)
cvWriteFrame(writer,outimg);
}
cvReleaseVideoWriter(&writer);
cvReleaseCapture(&capture);
一定要在写完视频的时候调用cvReleaseVideoWriter(&writer);否则存储的视频大小为0
cvCreateVideoWriter时,编码模式,图片大小应该和原始图片大小一致,可以通过cvGetCaptureProperty得到帧宽度和高度,帧率可以和原始视频不同。
可以通过在循环语句中加入判断来提取出某些帧图像来组成新的视频。
if (!capture)
{
fprintf(stderr,"Could not initialize capturing...\n");
return;
}
int outCompressCodec = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FOURCC);
double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);//帧率
int framecount=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);
int i=0;
CvVideoWriter *writer=0;
int frameW=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH);
int frameH=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT);
writer=cvCreateVideoWriter("f:\\2.avi",outCompressCodec,
fps,cvSize(frameW,frameH),1);
IplImage *outimg=0;
for (i=0;i<framecount;i++)
{
outimg=cvQueryFrame(capture);
// if(i%10==0)
cvWriteFrame(writer,outimg);
}
cvReleaseVideoWriter(&writer);
cvReleaseCapture(&capture);
一定要在写完视频的时候调用cvReleaseVideoWriter(&writer);否则存储的视频大小为0
cvCreateVideoWriter时,编码模式,图片大小应该和原始图片大小一致,可以通过cvGetCaptureProperty得到帧宽度和高度,帧率可以和原始视频不同。
可以通过在循环语句中加入判断来提取出某些帧图像来组成新的视频。
相关文章推荐
- opencv无法读取视频解决方法&&抽取视频帧存储为图像(python)
- gedit打开txt文件中文乱码的解决方法
- Opencv 3.0环境下编译SSD的问题以及解决方法。
- 利用 OpenCV 在MFC中显示图像问题以及解决方法
- Ubuntu 11.10 打开 windows文件乱码解决方法
- 关于std::fstream以及std::ifstream打开中文路径名失败的问题和解决方法
- Linux下OpenCV打开USB接口的UVC摄像头的方法以及索引号为什么要是202的原因
- 解决UTF-8编码的CSV文件在MICROSOFT EXCEL打开是中文乱码的方法
- 解决ubuntu下打开windows中的txt文件为乱码的方法
- ubuntu下的“用vim打开中文乱码,用cat打开正常显示”的解决方法
- ubuntu下打开txt乱码解决方法
- 【opencv】vc6.0中opencv打开摄像头失败解决方法
- 打开新窗口的window.open使用方法以及最大化等问题解决方法汇总
- GET乱码以及POST乱码的解决方法
- tomcat rar 压缩包 http 下载 乱码问题(即直接被浏览器打开) 解决方法
- Linux打开txt文件乱码的解决方法
- 用opencv从视频中读取图像为空的解决方法
- qt中中英文乱码的原因分析以及解决方法
- Ubuntu用gedit,Vim打开txt文档乱码解决方法
- VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法