欢迎大家访问我的个人博客网站style'me博客
下面是实现方法:
# -*- codeing = utf-8 -*-
# @Time : 2021/6/11 12:36
# @Author : lining
# @File : demo1.py
# @Software: PyCharm
from PIL import ImageGrab
import numpy as np
import cv2
import datetime
from pynput import keyboard
import threading
flag = False # 停止标志位
def video_record():#屏幕录制
print("屏幕录制已开启,若想结束录制请按ESC键")
name = datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")
p = ImageGrab.grab() #当前屏幕
a, b = p.size #屏幕的大小
fourcc = cv2.VideoWriter_fourcc(*"XVID") #编码格式
video = cv2.VideoWriter("%s.avi" % name, fourcc, 20, (a, b))
while True:
im = ImageGrab.grab()
imm = cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)
video.write(imm)
if flag:
print("屏幕录制结束!录屏文件在程序的同一目录")
break
video.release()
# 键盘监听
def on_press(key):
global flag
if key == keyboard.Key.esc:
flag = True
return False #返回False键盘监听结束!
th = threading.Thread(target=video_record)
th.start()
with keyboard.Listener(on_press=on_press) as listener:
listener.join()