视频录制
VideoWriter 参数1为:输出文件; 参数2为:多媒体文件格式VideoWriter_fourcc; 参数3为:帧数 参数4为:分辨率 write编写并写入缓存 release缓存内容写入磁盘,并释放资源
1.导入cv库及定义窗口
代码语言:javascript复制import cv2 #导入cv2库
cv2.namedWindow('frame', cv2.WINDOW_NORMAL) # 创建一个窗口名字为window
cv2.resizeWindow('frame', 800, 600) # 更改窗口的大小
2.调用摄像头
代码语言:javascript复制cap = cv2.VideoCapture(0)
3.指定输出视频的格式
代码语言:javascript复制
# *mp4v就是解包操作 等同于 'm','p','4','v'
代码语言:javascript复制fourcc = cv2.VideoWriter_fourcc(*'mp4v')
4.设置输出视频的属性
属性一:output.mp4——定义输出后的视频名字
属性二:fourcc——指定视频的格式(根据上一条代码的赋值)
属性三:20——设置帧数
属性四:(640,480)——设置摄像头的分辨率
代码语言:javascript复制vw = cv2.VideoWriter('output.mp4',fourcc,20,(640,480))
5.判断摄像头是否正确打开
代码语言:javascript复制while cap.isOpened():
ret,frame = cap.read()
if not ret:
break
6.写入每一帧数据,并显示窗口
vw就是4.命令行中定义并赋值过的vw
代码语言:javascript复制 vw.write(frame)
cv2.imshow('frame',frame)
7.监听键盘按键退出
代码语言:javascript复制 if cv2.waitKey(10) == ord('q'):
break
8.释放窗口资源
cap为打开的摄像头的资源
vw为写入数据资源
代码语言:javascript复制cap.release()
vw.release()
cv2.destroyAllWindows()
完整学习代码
代码语言:javascript复制import cv2 #导入cv2库
cv2.namedWindow('frame', cv2.WINDOW_NORMAL) # 创建一个窗口名字为window
cv2.resizeWindow('frame', 800, 600) # 更改窗口的大小
cap = cv2.VideoCapture(0)
# *mp4v就是解包操作 等同于 'm','p','4','v'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
#主要是这个分辨率
#output.mp4输出后的视频名字,fourcc指定的视频格式,20:帧数,(640,480)摄像头的分辨率
vw = cv2.VideoWriter('output.mp4',fourcc,20,(640,480))
while cap.isOpened():
ret,frame = cap.read()
if not ret:
break
#写每一帧的数据
vw.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(10) == ord('q'):
break
#释放videowriter
cap.release()
vw.release()
cv2.destroyAllWindows()
结果显示
运行后就会录制并保存我们摄像头所录制的全部内容