Python 尝试在不打开和显示窗口的情况下录制网络摄像头视频

Python 尝试在不打开和显示窗口的情况下录制网络摄像头视频,python,webcam,record,cv2,Python,Webcam,Record,Cv2,您好,我遵循了来自的教程,但它在录制视频时会显示视频。我想在不弹出视频的情况下录制它,但它不起作用。以下是教程中的代码: import os import cv2 filename = 'video.avi' frames_per_second = 24.0 res = '720p' # Set resolution for the video capture # Function adapted from https://kirr.co/0l6qmh def change_res(cap

您好,我遵循了来自的教程,但它在录制视频时会显示视频。我想在不弹出视频的情况下录制它,但它不起作用。以下是教程中的代码:

import os
import cv2


filename = 'video.avi'
frames_per_second = 24.0
res = '720p'

# Set resolution for the video capture
# Function adapted from https://kirr.co/0l6qmh
def change_res(cap, width, height):
    cap.set(3, width)
    cap.set(4, height)

# Standard Video Dimensions Sizes
STD_DIMENSIONS =  {
    "480p": (640, 480),
    "720p": (1280, 720),
    "1080p": (1920, 1080),
    "4k": (3840, 2160),
}


# grab resolution dimensions and set video capture to it.
def get_dims(cap, res='1080p'):
    width, height = STD_DIMENSIONS["480p"]
    if res in STD_DIMENSIONS:
        width,height = STD_DIMENSIONS[res]
    ## change the current caputre device
    ## to the resulting resolution
    change_res(cap, width, height)
    return width, height

# Video Encoding, might require additional installs
# Types of Codes: http://www.fourcc.org/codecs.php
VIDEO_TYPE = {
    'avi': cv2.VideoWriter_fourcc(*'XVID'),
    #'mp4': cv2.VideoWriter_fourcc(*'H264'),
    'mp4': cv2.VideoWriter_fourcc(*'XVID'),
}

def get_video_type(filename):
    filename, ext = os.path.splitext(filename)
    if ext in VIDEO_TYPE:
      return  VIDEO_TYPE[ext]
    return VIDEO_TYPE['avi']



cap = cv2.VideoCapture(0)
out = cv2.VideoWriter(filename, get_video_type(filename), 25, get_dims(cap, res))

while True:
    ret, frame = cap.read()
    out.write(frame)
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break


cap.release()
out.release()
cv2.destroyAllWindows()```

移除
cv2.imshow('frame',frame)
cv2.waitKey(1)
。。。如果cv2.waitKey(1)&0xFF==ord('q'):的话,实际上必须删除
,因为
cv2.waitKey()
只有在打开OpenCV窗口时才起作用<代码>为True时:
将是一个无止境的循环。如果要在按下
'q'
时结束循环,请查找