【发布时间】:2021-09-15 11:30:16
【问题描述】:
我正在尝试制作输出 AVI 文件的 python 屏幕录像机。按下“q”后循环应该停止,但这不起作用。当我用 Ctrl + C 中断程序时,它也不输出任何东西。我使用的是 Mac OS。
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1440, 900)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output2.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow("screenshot", frame)
if cv2.waitKey(1) == ord("q"):
break
cv2.destroyAllWindows()
out.release()
非常感谢您的建议;)
【问题讨论】:
-
assert out.isOpened() -
我认为
pyautogui.screenshot()返回的img的分辨率不是1440x900。试试img = pyautogui.screenshot(region=(0, 0, SCREEN_SIZE[0], SCREEN_SIZE[1]))。
标签: python opencv screenshot avi screen-recording