博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Opencv保存视频文件avi(转)
阅读量:6233 次
发布时间:2019-06-22

本文共 1154 字,大约阅读时间需要 3 分钟。

初始化:
  CvVideoWriter *writer = 0;
  int isColor = 1;
  int fps = 25; // or 30
  int frameW = 640; // 744 for firewire cameras
  int frameH = 480; // 480 for firewire cameras
  writer=cvCreateVideoWriter("out.avi",CV_FOURCC(’P’,’I’,’M’,’1’),
  fps,cvSize(frameW,frameH),isColor);
  
其他代码对应的编码器:
  CV_FOURCC(’P’,’I’,’M’,’1’) = MPEG-1 codec
  CV_FOURCC(’M’,’J’,’P’,’G’) = motion-jpeg codec (does not work well)
  CV_FOURCC(’M’, ’P’, ’4’, ’2’) = MPEG-4.2 codec
  CV_FOURCC(’D’, ’I’, ’V’, ’3’) = MPEG-4.3 codec
  CV_FOURCC(’D’, ’I’, ’V’, ’X’) = MPEG-4 codec
  CV_FOURCC(’U’, ’2’, ’6’, ’3’) = H263 codec
  CV_FOURCC(’I’, ’2’, ’6’, ’3’) = H263I codec
  CV_FOURCC(’F’, ’L’, ’V’, ’1’) = FLV1 codec
  将上面的改成 -1 将会打开一个编码器的选择窗口.
  
将每帧图像写入视频文件中:
  IplImage* img = 0;
  int nFrames = 50;
  for(i=0;i<nFrames;i++){
  cvGrabFrame(capture); // capture a frame
  img=cvRetrieveFrame(capture); // retrieve the captured frame
  cvWriteFrame(writer,img); // add the frame to the file
  }
  在循环里面加上下面语句将实时将视频显示在窗口mainwin中,cvWaitKey设置的是延迟时间:
  cvShowImage("mainWin", img);
  key=cvWaitKey(20); // wait 20 ms
  如果不设置20ms的延迟,视频将可能显示不正常.
  
释放资源:
  
cvReleaseVideoWriter(&writer);

转载地址:http://fgqna.baihongyu.com/

你可能感兴趣的文章
try catch finally
查看>>
LVM使用案例
查看>>
linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)
查看>>
分布式开放消息系统(RocketMQ)的原理与实践
查看>>
String字符串拼接效率比较
查看>>
UIView 的旋转和缩放
查看>>
Mysqlbinlog使用
查看>>
win7查看激活状态
查看>>
linux的Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍
查看>>
CentOS6下mysql5.5源码安装脚本
查看>>
nodejs 跨域解决问题
查看>>
Spring Bean注册解析(一)
查看>>
我的友情链接
查看>>
HTML DOM 事件
查看>>
Velocity(4)——#set指令
查看>>
<JavaScript高级程序设计>读书笔记(第10章DOM)
查看>>
SpringMVC 拦截器
查看>>
c语言基础之指针、数组和结构体
查看>>
匹配非0 正整数时,输入1e1显示为true???
查看>>
解决jquery动态添加的元素不能执行事件的问题
查看>>