设置较高的摄像机分辨率参数时,为什么录制的视频很快?

时间:2019-01-06 12:05:09

标签: python opencv

我正在使用opencv和python编写视频。有两件事我没道理。

1)我的相机(Logitech c930e)具有高分辨率。我以前录制视频时,分辨率为1280 x 720。现在,当我运行下面的代码时,它正在640 x 480处记录。为什么更改默认分辨率并记录为640 x 480

2)要在1280 x 720进行记录,我将参数设置为cap.set(3, 1280)cap.set(4, 720)。这次,录制的视频变得更快。因此,我降低了帧速率(fps)值。在这方面,它记录的速度几乎接近默认速度。但是,如何知道1280 x 720的确切fps值,这样我才能以正常速度拍摄640 x 480的视频,这是我的默认视频录制分辨率?而提高视频速度以获得更高分辨率的原因是什么?

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
cap.set(3, 1280)
cap.set(4,720)

# Tip for read the frame size
ret, frame = cap.read()
print('ret =', ret, 'W =', frame.shape[1], 'H =', frame.shape[0], 'channel =', frame.shape[2])


# Save the Video
FPS= 10.0
FrameSize=(frame.shape[1], frame.shape[0]) 
isColor=0# flag for color(true or 1) or gray (0)
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('Video_output.avi', fourcc, FPS, FrameSize)



while(cap.isOpened()):
    ret, frame = cap.read()

    # Save the video
    out.write(frame)

    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
         break

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

0 个答案:

没有答案