猫史档案馆


【Python作品分享】锋轩录屏【教程贴】

用户:MCFXJSMCFXJS查看:0 回复:0 评论:0 创建时间:2021-03-28T12:59:03


【作品展示】

center_image

 

【作品介绍】

一个录屏软件60

 

【作品源代码】

import time
import threading
from datetime import datetime
from PIL import ImageGrab
from cv2 import *
import numpy as np
from pynput import keyboard


def video_record():     # 录入视频
    global name
    name = datetime.now().strftime('%Y-%m-%d %H-%M-%S')  # 当前的时间(当文件名)
    screen = ImageGrab.grab()  # 获取当前屏幕
    width, high = screen.size  # 获取当前屏幕的大小
    # MPEG-4编码,文件后缀可为.avi .asf .mov等
    fourcc = VideoWriter_fourcc('X', 'V', 'I', 'D')
    video = VideoWriter('%s.avi' % name, fourcc, 30,
                        (width, high))  # (文件名,编码器,帧率,视频宽高)
    #print('3秒后开始录制----')   # 可选
    #time.sleep(3)
    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.home:
        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
    th = threading.Thread(target=video_record)
    th.start()
    with keyboard.Listener(on_press=on_press) as listener:
        listener.join()
    time.sleep(1)   # 等待视频释放过后
    video_info()
#啊这,想看我Python源代码,您看的懂吗?解析和意思写上去了,自己看吧。
#作者:MCFXJS。QQ号:1753817536
#我还没有编译成exe格式和apk格式,所以你要下载个Python运行环境还有许多python词库

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页