python使用opencv录屏偏快或偏慢的解决方案
上一篇文章讲了如何用python录制视频,这次讲下视频录制成功后的一些问题,录制下来的视频速度对不上的问题
说明
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面zhi数。FPS是测量用于保存、显示动态视频的信息数量。FPS数字越大即每秒钟帧数愈多,所显示的动作就会愈流畅。
但是由于不同计算机的处理能力不同,所以生成视频的速度和实际可能有所偏差,这个时候就要调试找到这台计算机最接近合适的帧率了。
调试录屏得到最接近的帧率
话不多说直接上代码
screen_recode.py
"""
python 屏幕录制
by:一岚大霞
"""
from PIL import ImageGrab
import numpy as np
import cv2
from cv2 import VideoCapture, CAP_PROP_FPS, CAP_PROP_FRAME_COUNT, CAP_PROP_FRAME_WIDTH, CAP_PROP_FRAME_HEIGHT
import datetime
import time
import os
from screen_recode.parse import ReadConf
import threading
conf = ReadConf()
class ScreenVideoControl(threading.Thread):
def __init__(self, save_dir):
threading.Thread.__init__(self)
self.fps = int(conf.get_value('conf', 'fps')) # 帧率为25,可以调节
self.start_time = time.time()
self.save_dir = save_dir
self.screen_file_path = None
self.get_video_path()
self.video = cv2.VideoWriter(self.screen_file_path, cv2.VideoWriter_fourcc(*'XVID'), self.fps,
ImageGrab.grab().size)
def start(self):