📅  最后修改于: 2023-12-03 15:06:53.254000             🧑  作者: Mango
屏幕录像机(Screen Recorder)是一款非常实用的工具,可以记录电脑屏幕上的所有动作,通常用于创建演示文稿、制作教学视频等。使用Python创建屏幕录像机可以让您更加灵活地控制录像过程,同时可以根据自己的需求自由定制录像功能。
您可以在命令提示符或终端中使用以下命令安装这些库:
pip install opencv-python
pip install pillow
pip install numpy
首先,我们需要导入上述所需的库:
import cv2
from PIL import ImageGrab
import numpy as np
接下来,我们需要设置录像的一些参数,比如帧率、屏幕大小等。您可以根据自己的需求自由更改这些参数。
# 录像帧率(Frames per second)
fps = 24.0
# 录像的屏幕大小(Screen Size)
screen_size = (1920, 1080)
# 编码类型
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
# 输出视频文件保存路径
output_path = "output.mp4"
为了将捕捉的图像写入视频文件,我们需要创建一个cv2.VideoWriter
对象:
output = cv2.VideoWriter(output_path, fourcc, fps, screen_size)
现在,我们可以开始录制屏幕了。可以使用以下代码来捕获屏幕图像并写入视频文件:
while True:
# 捕获屏幕图像
img = ImageGrab.grab(bbox=(0, 0, screen_size[0], screen_size[1]))
# 将图像转换为OpenCV格式
img_np = np.array(img)
img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
# 写入视频文件
output.write(img_np)
# 在屏幕上显示录制的图像
cv2.imshow("Screen Recorder", img_np)
# 按下'q'键停止录制
if cv2.waitKey(1) == ord("q"):
break
最后,我们需要释放视频输出对象并关闭所有窗口:
# 释放输出对象
output.release()
# 关闭所有窗口
cv2.destroyAllWindows()
下面是完整的屏幕录像机代码:
import cv2
from PIL import ImageGrab
import numpy as np
# 录像帧率
fps = 24.0
# 录像的屏幕大小
screen_size = (1920, 1080)
# 编码类型
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
# 输出视频文件保存路径
output_path = "output.mp4"
# 设置视频输出对象
output = cv2.VideoWriter(output_path, fourcc, fps, screen_size)
# 开始录制
while True:
# 捕获屏幕图像
img = ImageGrab.grab(bbox=(0, 0, screen_size[0], screen_size[1]))
# 将图像转换为OpenCV格式
img_np = np.array(img)
img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
# 写入视频文件
output.write(img_np)
# 在屏幕上显示录制的图像
cv2.imshow("Screen Recorder", img_np)
# 按下'q'键停止录制
if cv2.waitKey(1) == ord("q"):
break
# 结束录制
output.release()
cv2.destroyAllWindows()