OpenCV VideoWriter的速度随着外部环境变暗而加快

2024-10-06 14:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的opencv程序来保存来自USB相机的视频。相机几乎没有支持的分辨率

1600x1200 <= 5fps
1280x720 <= 11.120fps
800x600 <= 20fps
640x480 <= 30fps

我这样使用它:(这只是我代码中的一个片段)

cam = cv2.VideoCapture(0)

width = int(cam.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cam.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cv2.CAP_PROP_FPS

cam.set(3, width)
cam.set(4, height)

fourcc = cv2.VideoWriter_fourcc(*"mp4v")

out = cv2.VideoWriter(file_name, fourcc, fps, (width, height))
while cam.isOpened():
    img = cam.read()[1]
    out.write(main_img)

# etc....

这将在白天和夜间以实时速度将我的视频保存为1600x1200 5fps

但是当我做这样的事情时

cam = cv2.VideoCapture(0)

width = 1280
height = 720
fps = 11.120

# ....

我在白天和晚上都有视频,但在晚上我的视频速度更快了!与快进一样,1秒需要0.5秒,视频中的所有内容都会移动得更快

我怎样才能避免这种情况?是不是因为我的相机太慢了,在晚上无法获得更快的快门速度,所以cv2坚持11.120 fps快速转发视频


Tags: get视频widthcv2frameintcapfps