利用Python3編寫一個(gè)電腦錄屏神器
1、引言
女神:魚哥,忙嗎?
小魚:嗯嗯, 忙, 哦不 , 不忙不忙。
女神:魚哥,那能不能幫我個(gè)忙?
小魚:這沒問題啊這。
女神:你是認(rèn)真說的嗎?
小魚:認(rèn)真的啊,這還能不認(rèn)真嗎。
女神:說好了,不準(zhǔn)反悔。
小魚:我魚愿意為你,犧牲睡覺的時(shí)間,做事情。
女神:魚哥,你還帥哦。
小魚:不要羨慕魚哥, 魚哥上學(xué)從來沒在一班呆過。
女神:嗯嗯~ ~ 太哇塞了。
小魚:說吧, 你有啥事需要我,該不會(huì)是…?
女神:想什么呢? 我我想錄制一個(gè)視頻,但是不知道用什么軟件,能幫忙找一個(gè)嗎?
小魚:就這啊… 我還以為啥難事呢?
女神:那你的意思,可以幫忙了。
小魚:必須的。
2、代碼實(shí)戰(zhàn)
2.1 編寫思路
編寫視頻錄制器, 我們需要以下步驟:
1、初始化變量,默認(rèn)為True時(shí),就是錄制;
2、創(chuàng)建錄制函數(shù),用于進(jìn)行視頻錄制;
3、創(chuàng)建鍵盤監(jiān)聽函數(shù),如果按esc按鍵,就停止錄制;
有了以上思路,我們就進(jìn)行代碼編寫。
2.2 代碼示例
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-08-10 # @Author : Carl_DJ ''' 制作視頻錄制器 實(shí)現(xiàn)功能: 1、倒計(jì)時(shí)開始進(jìn)行錄制 2、點(diǎn)擊 鍵盤的 esc按鍵,就停止錄制 3、打包成.exe, 直接點(diǎn)擊就可以運(yùn)行 ''' 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 '#創(chuàng)建錄制過程生成的generate_video,用于生成錄制視頻' def generate_video(): ''' 生成錄制視頻 :return: ''' #當(dāng)前時(shí)間戳為文件名字 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('屏幕錄制結(jié)束') break video.release() '創(chuàng)建鍵盤監(jiān)聽函數(shù) press_keyboard,監(jiān)聽輸入,如果按下esc則改變運(yùn)行狀態(tài)' # is_running = False #注釋掉 def press_keyboard(key): ''' 鍵盤監(jiān)聽函數(shù) :param key: :return: ''' global is_running if key == keyboard.Key.esc: logger.debug('已按下ESC鍵,錄制結(jié)束') is_running = False return False if __name__ == '__main__': thread_ = threading.Thread(target=generate_video) thread_.start() logger.debug('開始進(jìn)入錄制視頻') with keyboard.Listener(on_press = press_keyboard) as listener: listener.join()
3、總結(jié)
看到這里,今天的分享差不多就該結(jié)束了。
今天主要通過pynupt、PIL、numpy 庫來介紹視頻的錄制及觸發(fā)鍵盤的按鍵后,結(jié)束錄制。
整體還算簡單,但是針對(duì)初學(xué)者來說,還是有一點(diǎn)點(diǎn)的難度。
同時(shí), 我也把代碼封裝成.exe應(yīng)用,雙擊即可直接運(yùn)行,
這里也說一下:
1、生成文件地址,與exe應(yīng)用統(tǒng)計(jì)目錄
2、生成文件名稱:日期+時(shí)間戳+錄制視頻.avi
3、結(jié)束按鍵:esc
到此這篇關(guān)于利用Python3編寫一個(gè)電腦錄屏神器的文章就介紹到這了,更多相關(guān)Python電腦錄屏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python模擬登錄百度代碼分享(獲取百度貼吧等級(jí))
python模擬登錄百度,實(shí)現(xiàn)了登錄并讀取百度關(guān)注貼吧列表,百度登錄還是有點(diǎn)麻煩的,由于用的ssl,所以要先獲取token,然后再登錄,這個(gè)用finddle2分析下,還是比較好解決的2013-12-12pandas初學(xué)者容易犯的六個(gè)錯(cuò)誤總結(jié)
Pandas是Python的一個(gè)數(shù)據(jù)分析包,該工具為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建,Pandas納入大量庫和標(biāo)準(zhǔn)數(shù)據(jù)模型,提供高效的操作數(shù)據(jù)集所需的工具,這篇文章主要給大家介紹了總結(jié)介紹了pandas初學(xué)者容易犯的六個(gè)錯(cuò)誤,需要的朋友可以參考下2021-10-10Python數(shù)據(jù)獲取實(shí)現(xiàn)圖片數(shù)據(jù)提取
本文主要介紹了Python數(shù)據(jù)獲取實(shí)現(xiàn)圖片數(shù)據(jù)提取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05anaconda3:conda not found報(bào)錯(cuò)問題解決
這篇文章主要給大家介紹了關(guān)于anaconda3:conda not found報(bào)錯(cuò)問題解決的相關(guān)資料,Anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),需要的朋友可以參考下2023-10-10Django 拆分model和view的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Django 拆分model和view的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08