屏幕录制(如何用Python记录你的屏幕(代码实现示例))

Python如何录制屏幕?本文教你使用 pyautogui 和 OpenCV 录制显示屏幕视频并将其保存到 Python 文件中。屏幕录制使你能够创建演示视频、记录游戏成就以及创建可在社交媒体上在线共享的视频。有许多工业软件可以帮助你很容易地做到这一点。在本教程中,你将学习如何使用 Python 制作你自己的简单屏幕录像机,你可以进一步扩展以满足你自己的需求。相关:  如何使用隐写术在 Python 中隐藏图像中的秘密数据。让我们开始Python录制屏幕示例吧,首先,安装本教程所需的依赖项:

pip3 install numpy opencv-python pyautogui

如何用Python记录屏幕?过程如下:
  • 使用pyautogui捕获屏幕截图。
  • 将该屏幕截图转换为numpy数组。
  • 使用OpenCV 中的视频编写器将该numpy数组写入具有正确格式的文件。
导入必要的模块:
import cv2 import numpy as np import pyautogui

让我们初始化用于编写视频文件的格式(名为“output.avi”):
# display screen resolution, get it from your OS settings SCREEN_SIZE = (1920, 1080) # define the codec fourcc = cv2.VideoWriter_fourcc(*"XVID") # create the video write object out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))

注意:你需要从操作系统中获取正确SCREEN_SIZE的屏幕分辨率,否则写入文件将不起作用(或者,你可以使用pyautogui.size()函数来获取主显示器的大小)。Python如何录制屏幕?Fourcc是OpenCV将用来编写视频文件的视频编解码库,我们在这里指定了XVID。的20.0作为第三个参数,以传递浮点值cv2.VideoWriter对应于FPS(FRAME FER SEcond)。Python录制屏幕示例介绍:现在我们需要继续捕获屏幕截图并循环写入文件,直到用户单击“q”按钮,这是主循环:
while True: # make a screenshot img = pyautogui.screenshot() # convert these pixels to a proper numpy array to work with OpenCV frame = np.array(img) # convert colors from BGR to RGB frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # write the frame out.write(frame) # show the frame cv2.imshow("screenshot", frame) # if the user clicks q, it exits if cv2.waitKey(1) == ord("q"): break# make sure everything is closed when exited cv2.destroyAllWindows() out.release()

首先,我们使用screenshot()函数返回一个图像对象,因此我们需要将其转换为适当的numpy数组。之后,我们需要将该帧转换为RGB,这是因为OpenCV默认使用BGR。如何用Python记录屏幕?正如pyautogui 的官方文档中所述,你还可以通过传递region关键字参数来仅记录屏幕的区域,该参数是一个四整数元组,表示要捕获的区域的顶部、左侧、宽度 和高度 ,这是它的方式完毕:
img = pyautogui.screenshot(region=(0, 0, 300, 400))

录制完成后,只需单击“q”,它就会破坏窗口并完成写入文件,试试吧!此外,你可以用循环替换该while True语句,for如下Python录制屏幕示例所示:
for i in range(200): # make a screenshot img = pyautogui.screenshot() # the rest of the code...

这将记录你的屏幕10秒,那是因为我们将 FPS 设置为20(这是有道理的,因为200是20乘以10)Python如何录制屏幕?你可以使用无穷无尽的想法来扩展它。例如,你可以将其与录音机结合使用,你将获得一个同时记录屏幕和语音的 Python 工具,你将需要使用一个记录音频的线程和另一个用于屏幕记录器的线程,让我们知道你在下面的评论中取得了进步!或者你可以创建开始、暂停和停止录制的键盘快捷键,本教程可以帮助你。

    推荐阅读