python opencv 视频录制采集

5 阅读1分钟
import cv2

# 创建VideoWriter 保存对象到多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')  # 修正:MJPG是4个字符
vw = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))  # 修正:使用AVI格式和匹配的分辨率
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
# 设置窗口大小
cv2.resizeWindow('video', 640, 480)
# 获取视频设备-采集视频帧
cap = cv2.VideoCapture(1)  # 修正:通常0是默认摄像头

# 检查摄像头是否打开成功
if not cap.isOpened():
    print("错误:无法打开摄像头")
    exit()

# 退出与显示逻辑
print(ord('q'))
while True:
    # 从摄像头获取视频帧
    ret, frame = cap.read()
    
    # 检查是否成功读取帧
    if not ret:
        print("错误:无法读取视频帧")
        break
        
    # 调整帧大小以匹配VideoWriter设置 防止视频帧尺寸不匹配
    frame = cv2.resize(frame, (640, 480))
    # 写入视频帧
    vw.write(frame)
    
    # 显示视频帧在窗口
    cv2.imshow('video', frame)
    key = cv2.waitKey(1)

    if key & 0xFF == ord('q'):
        break
    elif key != -1:  # 只在有按键时打印
        print(f"按键码: {key}")

# 释放资源
cap.release()

vw.release()
cv2.destroyAllWindows()