文前白话
本段代码作为之前一篇博客的补充:
链接: 【OpenCV-python&实现多进程两个摄像头同时录入视频并保存】.
- 本段代码,可使用单个海康威视摄像头/ 笔记本摄像头,读取视频流,保存至本地,可以在开始读入前,进行文件的命名。
代码
# 单个摄像头读取并保存
import cv2
import os
# cap = cv2.VideoCapture("192.168.1.64")
cap = cv2.VideoCapture("rtsp://admin:zhangxuexiang714@192.168.1.64/") # 更改自己的相机信息
# cap = cv2.VideoCapture(0) # 打开本地相机
fps = cap.get(cv2.CAP_PROP_FPS)
print('fps: ', fps)
# 创建VideoWriter类对象
file_name = input('请输入本次视频文件命名:')
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 编码方式 FourCC 码
out = cv2.VideoWriter("E:/Projects/project/traffic/video" + '\\' + str(file_name)+'.avi', fourcc, 20.0, (int(cap.get(3)), int(cap.get(4))), True) \
# 输出视频文件名、视频编解码器、帧率、画面尺寸,默认彩色画质
while (cap.isOpened()):
ret, frame = cap.read() # 捕获一帧图像111
cv2.resizeWindow("frame", 800, 500) # 设置输出窗口的长和宽
if ret == True:
out.write(frame) # 保存帧
frame = cv2.flip(frame, 1) # 垂直方向翻转,返回翻转后的图像(开启本地摄像头时)
cv2.imshow('frame', frame) # 显示帧
if cv2.waitKey(1) & 0xFF == ord('q'): # 按键 q 退出
break
else:
break
cap.release() # 关闭相机
out.release()
cv2.destroyAllWindows()