使用opencv保存视频需要用到VideoWriter对象
VideoWriter(filename, fourcc, fps, frame_size[, isColor])
参数:
-
filename:文件路径
-
fourcc:Four-Character Codes,四字符代码,该编码由四个字符组成
设置fourcc有两种写法:
1、cv2.VideoWriter_fourcc(‘O’,‘O’,‘O’,‘O’)
2、cv2.VideoWriter_fourcc(*‘OOOO’)
O代表一个字符,英文要么全部大写,要么全部小写I420,YUV编码,视频格式为.avi PIM1,MPEG-1编码,视频格式为.avi XVID,MPEG-4编码,视频格式为.avi THEO,Ogg Vorbis,视频格式为.ogv FLV1,Flash视频,视频格式为.flv AVC1,H264编码 DIV3,MPEG-4.3编码 DIVX,MPEG-4编码 MP42,MPEG-4.2编码 MJPG,motion-jpeg编码 U263,H263编码 I263,H263I编码 MP4V,视频格式为.mp4
例如:
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
- fps:被创建视频流的帧率
- frame_size:视频流的大小
- isColor:如果为True则每一帧为彩色图,否则为灰度图,默认为True
录制视频代码:
import cv2
# 0表示从摄像投中读取视频,如果是视频文件直接写地址就好
vc = cv2.VideoCapture(0)
# 设置FPS为60帧
vc.set(cv2.CAP_PROP_FPS, 60)
# 获取FPS 每秒多少张图片
FPS = int(vc.get(cv2.CAP_PROP_FPS))
# 设置编码类型为mp4
FOURCC = cv2.VideoWriter_fourcc(*'mp4v')
# 录制avi的视频
# vc.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
# FOURCC = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
# 可以指定图像的宽高,但要与写入时一致,这里直接得到摄像头拍摄的视频的宽和高
WIDTH = int(vc.get(cv2.CAP_PROP_FRAME_W