我正在尝试在我的 MacBook Pro 上录制屏幕并将其存储在视频文件中。这不是最终目标,但这是第一步,我注意到无论我将写作帧率设置为什么,我在最终视频中只得到了一半。例如,如果我将其设置为 30,我会以 30fps 的速度保存一个视频,但每一帧都会重复。第 1 帧和第 2 帧相同,第 3 帧和第 4 帧相同;等等等等。所以我只得到15帧。
我已经尝试将帧速率设置为 60 或 120,它给了我相同的结果。而当我使用 QuickTime 等专业实用程序录制屏幕时,我会得到应有的录制效果,没有重复的帧等。
import numpy as np
import cv2
from mss import mss
from PIL import Image
bbox = {'top': 270, 'left': 100, 'width': 600, 'height': 150}
sct = mss()
#fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('/Users/vipulrajan/Downloads/DinoGame/output.avi',cv2.VideoWriter_fourcc(*'XVID'), 60.0, (1200,300), isColor=0)
while 1:
sct_img = sct.grab(bbox)
im = np.array(sct_img)[:,:,2] #converting the image to grayscale
out.write(im)
我还尝试在代码中添加和删除 cv2.waitKey 函数,但没有任何区别。有谁知道可能导致这种行为的原因是什么?