用 OpenCV 开发经常用到摄像头,从 Camera获取图像后用OpenCV的算法进行处理,但是一般我们处理完图像之后,还需要将视频保存下来,比如保存成avi、mp4等格式。怎么保存呢?其实OpenCV有一个类cv::VideoWriter专门用来把视频保存到文件的,但VideoWriter不仅仅是将原始图像流保存到文件,它还可以对视频编码,然后以某种封装格式(比如AVI/MP4)将视频流写到文件中。其实这个VideoWriter底层也是调用了FFmpeg的多媒体文件处理功能,OpenCV只是借用了FFmpeg的能力,在上面封装多了一层。因为OpenCV的长项是在图像处理,如果要针对多媒体文件做复杂的处理,推荐的还是用FFmpeg 专业库。

VideoWriter使用

用 OpenCV 保存视频非常简单,通过调用它的 VideoWriter 这个类就好了。

cv::VideoWriter::VideoWriter( const String & filename,
int     apiPreference,
int     fourcc,
double  fps,
Size    frameSize,
bool    isColor = true
)   

第一个参数是要保存的文件的路径
fourcc 指定编码器
fps 要保存的视频的帧率
frameSize 要保存的文件的画面尺寸
isColor 指示是黑白画面还是彩色的画面

什么是fourcc?

fourcc 本身是一个 32 位的无符号数值,用 4 个字母表示采用的编码器。
常用的有 “DIVX"、”MJPG"、“XVID”、“X264"。可用的列表在这里。

下面这个例子从摄像头采集到图像后调用VideoWriter把图像编码成x264格式,保存文件为MP4。

    cv::VideoCapture m_cap;m_cap.open(0);assert(m_cap.isOpened());int rate = m_cap.get(CV_CAP_PROP_FPS);cv::Mat frame;m_cap>>frame;cv::VideoWriter videowriter;videowriter.open("test.mp4",CV_FOURCC('X','2','6','4'),30,cv::Size(frame.cols,frame.rows));assert(videowriter.isOpened());char keycode;while ((keycode = cvWaitKey(30))) {if (keycode == 27) {break;}if (!m_cap.grab()) {break;}m_cap>>frame;videowriter<<frame;}videowriter.release();

参考链接:

《OpenCV 用 VideoWriter 创建视频(Python 版本)》

《Qt使用opencv调用摄像头录制视频并保存文件》

使用opencv调用摄像头然后录制视频和保存文件相关推荐

  1. opencv打开摄像头、录制视频

    目录 一.参考: 1.运行代码:Opencv2.4学习::摄像头读取&&视频写入: 1.opencv读取视频,摄像头,保存视频代码 (2012-10-18 21:25:26) 1.Op ...

  2. OpenCV+python调用本地摄像头并录制视频

    1.调用摄像头并录制视频 from cv2 import cv2 #捕获摄像头帧 cameraCapture = cv2.VideoCapture(0) fps = 30 size=(int(came ...

  3. python 摄像头录视频教程,OpenCV+python调用本地摄像头并录制视频

    1.调用摄像头并录制视频 from cv2 import cv2 #捕获摄像头帧 cameraCapture = cv2.VideoCapture(0) fps = 30 size=(int(came ...

  4. linux中cv调用摄像头,ubuntu中opencv调用摄像头

    ubuntu中opencv调用摄像头 ubuntu中opencv调用摄像头 文章目录 一.Ubuntu中安装opencv 二.关于Linux如何开启摄像头 1.安装VMvareTools,这个是真的强 ...

  5. python3 + opencv 调用摄像头录像后保存视频

    python3 + opencv 调用摄像头录像后保存视频 #!/usr/bin/python3 import cv2## opening videocapture cap = cv2.VideoCa ...

  6. python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

    用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考: 使用opencv 调用摄像头 import face_recognition import cv2 ...

  7. python人脸识别截图_Python OpenCV调用摄像头检测人脸并截图

    本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarc ...

  8. 使用OpenCV调用摄像头检测人脸并截图-Python

    注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarcascade_frontalface_alt.xml,模型可在https://github.com/Time ...

  9. 【openCV调用摄像头】python

    – 文章目录 一.openCV调用摄像头 一.openCV调用摄像头 代码如下(示例): import cv2 import timeimport numpy as np def video_demo ...

最新文章

  1. 双料状元收割神器来了!清华设立计算机金融双学士学位
  2. 用Python解“爬动的蠕虫”题
  3. 51nod 1049 最大子段和
  4. oracle可以迁徙mysql吗_项目oracle迁徙到mysql的小总结
  5. 相比学习好的学生,老师最喜欢努力认真学习的学生
  6. sqlserver日志管理(转载)
  7. python mock支付_python mock知识03
  8. 【EMNLP2020】融合自训练和自监督方法的无监督文本顺滑研究
  9. 用Dezende解密zend后的php代码
  10. ant design——Modal
  11. CSS3的box-sizing 属性
  12. 基于tesseract的文字识别
  13. 揭秘手机变手雷的四大病毒
  14. 京东云鼎服务器系统时间问题-时间戳参与与服务器时间差异大于设定值
  15. 苹果iOS开发者账号从零开始申请
  16. 【思维论01】如何让自己像打王者荣耀一样发了疯、石乐志的学习?
  17. ERP管理系统规划四大注意事项
  18. python docx处理word文档中表格合并问题
  19. 通过云速搭CADT实现云原生分布式数据库PolarDB-X 2.0的部署
  20. vue 一键复制粘贴

热门文章

  1. 双绞线与PCB差分信号布线
  2. 二进制部署kubernetes 1.25.5(二)
  3. Python学习Day17
  4. 2022世界杯期间,独立站卖家如何借势营销?
  5. 哲学家进餐_我如何通过预算学习计划进餐
  6. H5 实现电子签名功能-VUE--12301合同签署类似功能
  7. TinyPng:在线PNG图片压缩工具
  8. ArcGIS JS 版军事标绘图、燕尾箭头;支持VUE版本
  9. 如何利用通达信进行选股集合操作
  10. 微软的面试题及答案-超变态但是很经典(转)