使用 OpenCV 是否可以减少相机延迟?

问题描述 投票:0回答:1

我正在学习 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秒)。

python opencv camera webcam latency
1个回答
0
投票

您使用的是 Windows。尝试

CAP_DSHOW
CAP_MSMF
模式至
VideoCapture
。这通常会产生影响。

cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_DSHOW)
cap = cv2.VideoCapture(0, apiPreference=cv2.CAP_MSMF)
© www.soinside.com 2019 - 2024. All rights reserved.