python录制屏幕小工具,已调试成功运行

本文介绍了如何使用Python和相关库如PIL、OpenCV、pynput等创建一个简单的屏幕录制程序。程序通过不断截图并合成视频实现录屏功能,同时监听键盘输入,按下Esc键可结束录制。最终通过pyinstaller将程序打包成可执行文件。
摘要由CSDN通过智能技术生成

由于最近测试需要录制系统界面的操作过程,因为都是全屏的操作,所以用python做一个简单的录屏小工具。

实现过程也是比较简单,就是通过对屏幕操作进行不断的截图,最后将截图合成一个操作视频的过程。由于我们只是做简单的截屏功能,并没有加入音频效果。

屏幕录制.gif

1、准备

开始之前我们还是按照以往的方式介绍一下使用到的第三方的python模块。

from PIL import ImageGrab

import numpy as np

import cv2

import datetime

from pynput import keyboard

import threading

from loguru import logger

import time

由于实现过程比较少,这里我们不再创建标准的class实现,直接在.py文件写相关的函数来实现。

2、代码

实现过程主要是通过两个函数来实现的,一个是实现具体的屏幕截图操作,并且将其写入视频。另一个则是用来监听键盘的输入,若是按下esc键时则退出当前的录制操作。

初始化一个变量作为停止标志。

is_running = True

创建录制过程生成函数generate_video,用以生成录制视频。

def generate_video():
    '''
    生成录制视频函数
    :return:
    '''
    file_name = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S')
    screen = ImageGrab.grab()
    width, height = screen.size
    fourcc = cv2.VideoWriter_fourcc(*'XVID')
    video = cv2.VideoWriter('%s.avi' % file_name, fourcc, 20, (width, height))
    for n in range(3):
        logger.debug(str(3 - n) + '秒后开始录制!')
        time.sleep(1)
    while True:
        im1 = ImageGrab.grab()
        im2 = cv2.cvtColor(np.array(im1), cv2.COLOR_RGB2BGR)
        video.write(im2)
        if is_running is False:
            logger.debug('屏幕录制已经结束!')
            break
    video.release()

创建键盘监听函数press_keyboard,监听输入,若是按下esc键则改变运行状态。

is_running=False
def press_keyboard(key):
    '''
    键盘监听函数
    :param key:
    :return:
    '''
    global is_running
    if key == keyboard.Key.esc:
        logger.debug('ESC已经被按下,马上结束录制!')
        is_running = False
        return False

执行主函数main,启动则执行屏幕录制。

if __name__ == '__main__':
    thread_ = threading.Thread(target=generate_video)
    thread_.start()
    logger.debug(' 开始进入视频录制!')
    with keyboard.Listener(on_press=press_keyboard) as listener:
        listener.join()

最后,使用pyinstaller将其打包成exe的可执行应用,使用时直接双击打开即可开始录制屏幕的操作过程。

pyinstaller -i .\video.ico -Fw .\test2.py

至此,录制屏幕小工具就大功告成了。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Python录制屏幕,可以使用多种库和方法。引用\[1\]中的代码展示了一个生成录制视频的函数generate_video,该函数使用了ImageGrab和cv2库来捕获屏幕图像并将其写入视频文件。通过调用该函数,可以开始录制屏幕。引用\[2\]中的代码展示了一个主函数main,通过创建一个线程来执行generate_video函数,并使用keyboard库监听键盘事件来控制录制的开始和结束。引用\[3\]提到了使用Python的多进程库来在不同的线程中运行屏幕录制脚本,其中Mss库被认为是表现最好的一个。 因此,要在Python录制屏幕,你可以使用generate_video函数来生成录制视频,使用主函数main来启动录制,并可以考虑使用Mss库来实现屏幕录制。 #### 引用[.reference_title] - *1* *2* [python录制屏幕工具,已调试成功运行](https://blog.csdn.net/chengxuyuan_110/article/details/126062601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用Python进行自动化录屏](https://blog.csdn.net/csdn1561168266/article/details/130497638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python 集中营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值