juhugufudu 发表于 2020-3-31 11:44:10

python录屏

现在市面上有很多录屏软件,但需要付费,并且十分“暴力”
所以,我今天就分享一个录屏的脚本。按Esc键即可退出录制
from PIL import ImageGrab
import numpy as np
import cv2
import datetime
from pynput import keyboard
import threading
flag=False#停止标志位
def video_record():
    """
    屏幕录制!
    :return:
    """
    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, 16, (a, b))# 输出文件命名为test.mp4,帧率为16,可以自己设置
    while True:
      im = ImageGrab.grab()
      imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)#转为opencv的BGR格式
      video.write(imm)
      if flag:
            print("录制结束!")
            break
    video.release()
def on_press(key):
    """
    键盘监听事件!!!
    :param key:
    :return:
    """
    #print(key)
    global flag
    if key == keyboard.Key.esc:
      flag=True
      print("stop monitor!")
      return False#返回False,键盘监听结束!

if __name__=='__main__':
    th=threading.Thread(target=video_record)
    th.start()
    with keyboard.Listener(on_press=on_press) as listener:
      listener.join()

    这个的帧率最好要16,我的是有一些特殊需求的,这个文件需要运行的话。
要在 cmd 运行以下几句话
PIL 即pollow 的安装命令如下:
pip install pillow
其中cv2的安装是下面这条命令
pip install opencv-python

Hello. 发表于 2020-3-31 11:46:05

支持!!!{:10_298:}

魔法鳕鱼 发表于 2020-3-31 19:47:53

这个可以啊,挺nb的

琪老怪 发表于 2023-4-19 11:11:41

亲测可用,感谢分享!
页: [1]
查看完整版本: python录屏