我正在学习 python,并且正在使用 OpenCV。 我的目标是: 当我执行 python 脚本时:它开始使用我的 USB 网络摄像头(Logitech C920)录制 10 秒的序列,并将视频写入我的桌面上。 我做到了 !然而,我的相机需要 1 分 8 秒才能开始录制:太长了。我想在执行脚本后最多 3 秒启动。
我的代码:
import cv2
import os
import time
desktop_path = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
video_filename = os.path.join(desktop_path, 'video_output.mp4')
cap = cv2.VideoCapture(0)
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
fps = 30 # Frames per second
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(video_filename, fourcc, fps, (frame_width, frame_height))
start_time = time.time()
while int(time.time() - start_time) < 10:
ret, frame = cap.read()
if ret:
# Écrire le cadre dans le fichier vidéo
out.write(frame)
# Afficher la vidéo en cours de capture (optionnel)
cv2.imshow('frame', frame)
# Arrêter si l'utilisateur appuie sur 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
print(f"Vidéo enregistrée sous : {video_filename}")
有人有办法纠正这个相机延迟吗? 喜欢读书
我尝试使用我的电脑网络摄像头,花费的时间更少。 (仅录制7秒)。
您使用的是 Windows。尝试
CAP_DSHOW
和 CAP_MSMF
模式至 VideoCapture
。这通常会产生影响。
cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_DSHOW)
cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_MSMF)