python 录屏软件(配合pillow、opencv-python、numpy、pynput)打包后可以直接录屏,清晰度很不错哦

python 录屏软件(配合pillow、opencv-python、numpy、pynput)打包后可以直接录屏,清晰度很不错哦,第1张

python 录屏软件(配合pillow、opencv-python、numpy、pynput)打包后可以直接录屏,清晰度很不错哦
#coding:utf-8
import time,threading
from datetime import datetime
from PIL import ImageGrab
from cv2 import *
import numpy as np
from pynput import keyboard
def video_record(sttime):   # 录入视频
  global name
  name = datetime.now().strftime('%Y-%m-%d %H-%M-%S') # 当前的时间(当文件名)
  screen = ImageGrab.grab() # 获取当前屏幕
  width, high = screen.size # 获取当前屏幕的大小
  fourcc = VideoWriter_fourcc('X', 'V', 'I', 'D') # MPEG-4编码,文件后缀可为.avi .asf .mov等
  video = VideoWriter('%s.avi' % name, fourcc, 15, (width, high)) # (文件名,编码器,帧率,视频宽高)
  print(str(sttime)+'秒后开始录制----')  # 可选
  time.sleep(int(sttime))
  print('开始录制!')
  global start_time
  start_time = time.time()
  while True:
    if flag:
      print("录制结束!")
      global final_time
      final_time = time.time()
      video.release() #释放
      break
    im = ImageGrab.grab()  # 图片为RGB模式
    imm = cvtColor(np.array(im), COLOR_RGB2BGR) # 转为opencv的BGR模式
    video.write(imm)  #写入
    # time.sleep(5) # 等待5秒再次循环
def on_press(key):   # 监听按键
  global flag
  if key == keyboard.Key.esc:
    flag = True # 改变
    return False # 返回False,键盘监听结束!
def video_info():   # 视频信息
  video = VideoCapture('%s.avi' % name)  # 记得文件名加格式不要错!
  fps = video.get(CAP_PROP_FPS)
  Count = video.get(CAP_PROP_frame_COUNT)
  size = (int(video.get(CAP_PROP_frame_WIDTH)), int(video.get(CAP_PROP_frame_HEIGHT)))
  print('帧率=%.1f'%fps)
  print('帧数=%.1f'%Count)
  print('分辨率',size)
  print('视频时间=%.3f秒'%(int(Count)/fps))
  print('录制时间=%.3f秒'%(final_time-start_time))
  print('推荐帧率=%.2f'%(fps*((int(Count)/fps)/(final_time-start_time))))
if __name__ == '__main__':
  flag = False
  print("工具使用:输入1-9秒必须为整数的延迟时间,点击esc按钮结束录屏")
  sstime = input("请输入多少秒后开始录制(1-9秒)必须为整数:",)
  th = threading.Thread(target=video_record,args=sstime)
  th.start()
  with keyboard.Listener(on_press=on_press) as listener:
    listener.join()
  time.sleep(1)  # 等待视频释放过后
  video_info()

测试PC的朋友不妨可以试试这款录屏工具,直接打包即可使用 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4827463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存