利用Python3编写一个电脑录屏神器

 更新时间:2022年08月19日 08:16:04   作者:Carl_奕然  
这篇文章主要为大家详细介绍了如何利用Python3编写一个简易的电脑录屏神器,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下

1、引言

女神:鱼哥,忙吗?

小鱼:嗯嗯, 忙, 哦不 , 不忙不忙。

女神:鱼哥,那能不能帮我个忙?

小鱼:这没问题啊这。

女神:你是认真说的吗?

小鱼:认真的啊,这还能不认真吗。

女神:说好了,不准反悔。

小鱼:我鱼愿意为你,牺牲睡觉的时间,做事情。

女神:鱼哥,你还帅哦。

小鱼:不要羡慕鱼哥, 鱼哥上学从来没在一班呆过。

女神:嗯嗯~ ~ 太哇塞了。

小鱼:说吧, 你有啥事需要我,该不会是…?

女神:想什么呢? 我我想录制一个视频,但是不知道用什么软件,能帮忙找一个吗?

小鱼:就这啊… 我还以为啥难事呢?

女神:那你的意思,可以帮忙了。

小鱼:必须的。

2、代码实战

2.1 编写思路

编写视频录制器, 我们需要以下步骤:

1、初始化变量,默认为True时,就是录制;

2、创建录制函数,用于进行视频录制;

3、创建键盘监听函数,如果按esc按键,就停止录制;

有了以上思路,我们就进行代码编写。

2.2 代码示例

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2022-08-10
# @Author : Carl_DJ

'''
制作视频录制器
实现功能:
1、倒计时开始进行录制
2、点击 键盘的 esc按键,就停止录制
3、打包成.exe, 直接点击就可以运行
'''
import cv2
from PIL import ImageGrab
import numpy as np
import datetime
from pynput import keyboard
import threading
from loguru import logger
import  time
import  os
# 初始化变量
is_running = True

'#创建录制过程生成的generate_video,用于生成录制视频'

def generate_video():
    '''
    生成录制视频
    :return:
    '''
    #当前时间戳为文件名字
    start_time = datetime.datetime.now().strftime('%Y-%m-%d %H%M%S')
    file_name = (start_time + '录制视频')
    # file_name= input("输入录制文件的名称")
    screen = ImageGrab.grab()
    width,height = screen.size
    fource = cv2.VideoWriter_fourcc(*'XVID')
    video = cv2.VideoWriter('%s.avi'% file_name,fource,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_RGBA2RGB)
        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

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

3、总结

看到这里,今天的分享差不多就该结束了。

今天主要通过pynupt、PIL、numpy 库来介绍视频的录制及触发键盘的按键后,结束录制。

整体还算简单,但是针对初学者来说,还是有一点点的难度。

同时, 我也把代码封装成.exe应用,双击即可直接运行,

这里也说一下:

1、生成文件地址,与exe应用统计目录

2、生成文件名称:日期+时间戳+录制视频.avi

3、结束按键:esc

到此这篇关于利用Python3编写一个电脑录屏神器的文章就介绍到这了,更多相关Python电脑录屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现emoji对齐特殊字符对齐高级文本对齐

    python实现emoji对齐特殊字符对齐高级文本对齐

    这篇文章主要为大家介绍了python实现emoji对齐特殊字符对齐高级文本对齐方法实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Pycharm 设置默认头的图文教程

    Pycharm 设置默认头的图文教程

    今天小编就为大家分享一篇Pycharm 设置默认头的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Selenium定位元素操作示例

    Selenium定位元素操作示例

    这篇文章主要介绍了Selenium定位元素操作,结合实例形式总结分析了Selenium通过ID、name、XPath、标签名称、类名等进行元素定位操作的相关实现技巧,需要的朋友可以参考下
    2018-08-08
  • django之对django内置的User模型进行自定义扩展方式

    django之对django内置的User模型进行自定义扩展方式

    这篇文章主要介绍了django之对django内置的User模型进行自定义扩展方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PyCharm使用技巧之设置背景图片方式

    PyCharm使用技巧之设置背景图片方式

    这篇文章主要介绍了PyCharm使用技巧之设置背景图片方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 五个提升Python的执行效率的技巧分享

    五个提升Python的执行效率的技巧分享

    python作为使用最广泛的编程语言之一,有着无穷无尽的第三方非标准库的支持。但python有一个经常被人诟病的缺点那就是运行速度,所以本文和大家分享了五个提升Python的执行效率的技巧,希望对大家有所帮助
    2023-04-04
  • PyQt5 QTableView设置某一列不可编辑的方法

    PyQt5 QTableView设置某一列不可编辑的方法

    今天小编就为大家分享一篇PyQt5 QTableView设置某一列不可编辑的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python使用pytest接口自动化测试的使用

    python使用pytest接口自动化测试的使用

    这篇文章主要介绍了python使用pytest接口自动化测试的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python中将字典形式的数据循环插入Excel

    python中将字典形式的数据循环插入Excel

    这篇文章主要介绍了python中将字典形式的数据循环插入Excel的方法,需要的朋友可以参考下
    2018-01-01
  • Django+Xadmin构建项目的方法步骤

    Django+Xadmin构建项目的方法步骤

    这篇文章主要介绍了Django+Xadmin构建项目的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03

最新评论