电脑录屏神器
1、引言2、代码实战2.1 编写思路2.2 代码示例3、总结1、引言
女神:鱼哥,忙吗?
小鱼:嗯嗯, 忙, 哦不 , 不忙不忙。
女神:鱼哥,那能不能帮我个忙?
小鱼:这没问题啊这。
女神:你是认真说的吗?
小鱼:认真的啊,这还能不认真吗。
女神:说好了,不准反悔。
小鱼:我鱼愿意为你,牺牲睡觉的时间,做事情。
女神:鱼哥,你还帅哦。
小鱼:不要羡慕鱼哥, 鱼哥上学从来没在一班呆过。
女神:嗯嗯~ ~ 太哇塞了。
小鱼:说吧, 你有啥事需要我,该不会是…?
女神:想什么呢? 我我想录制一个视频,但是不知道用什么软件,能帮忙找一个吗?
小鱼:就这啊… 我还以为啥难事呢?
女神:那你的意思,可以帮忙了。
小鱼:必须的。
2、代码实战
2.1 编写思路
编写视频录制器, 我们需要以下步骤:
1、初始化变量,默认为True时,就是录制;2、创建录制函数,用于进行视频录制;3、创建键盘监听函数,如果按esc按键,就停止录制;
有了以上思路,我们就进行代码编写。
2.2 代码示例
代码示例
# -*- coding:utf-8 -*-# @Time : -08-10# @Author : Carl_DJ'''制作视频录制器实现功能:1、倒计时开始进行录制2、点击 键盘的 esc按键,就停止录制3、打包成.exe, 直接点击就可以运行'''import cv2from PIL import ImageGrabimport numpy as npimport datetimefrom pynput import keyboardimport threadingfrom loguru import loggerimport timeimport 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.sizefource = 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('屏幕录制结束')breakvideo.release()'创建键盘监听函数 press_keyboard,监听输入,如果按下esc则改变运行状态'# is_running = False #注释掉def press_keyboard(key):'''键盘监听函数:param key::return:'''global is_runningif key == keyboard.Key.esc:logger.debug('已按下ESC键,录制结束')is_running = Falsereturn Falseif __name__ == '__main__':thread_ = threading.Thread(target=generate_video)thread_.start()logger.debug('开始进入录制视频')with keyboard.Listener(on_press = press_keyboard) as listener:listener.join()
运行结果
敲黑板:
为了节约时间, 我把代码封装成exe文件,喜欢的可以直接去下载。
点击,即可跳转到下载页面。
3、总结
看到这里,今天的分享差不多就该结束了。
今天主要通过pynupt、PIL、numpy 库来介绍视频的录制及触发键盘的按键后,结束录制。
整体还算简单,但是针对初学者来说,还是有一点点的难度。
同时, 我也把代码封装成.exe应用,双击即可直接运行,
这里也说一下:
1、生成文件地址,与exe应用统计目录2、生成文件名称:日期+时间戳+录制视频.avi3、结束按键:esc
我是小鱼:
CSDN博客专家;51testing认证讲师;
关注我,带你学习更多更有趣的python知识。