鱼C论坛

 找回密码
 立即注册
查看: 2803|回复: 3

[技术交流] python录屏

[复制链接]
发表于 2020-3-31 11:44:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在市面上有很多录屏软件,但需要付费,并且十分“暴力”
所以,我今天就分享一个录屏的脚本。按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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-31 11:46:05 | 显示全部楼层
支持!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-31 19:47:53 | 显示全部楼层
这个可以啊,挺nb的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-19 11:11:41 | 显示全部楼层
亲测可用,感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 15:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表