我该怎么做才能在opencv中提高视频质量

问题描述 投票:0回答:1

我正在创建一个python程序来记录我的桌面屏幕。

但是此代码的输出质量非常低且模糊。

任何人都可以帮助我进行高质量的捕获(屏幕捕获)。

[像OBS Studio和Camtasia这样的屏幕录像机。

我该怎么做才能提高质量,改变范围,编解码器等。请提及。

import cv2
import numpy as np
import datetime
from PIL import Image, ImageTk, ImageGrab

date = datetime.datetime.now()
filename='rec_%s-%s-%s-%s%s%s.mp4' % (date.year, date.month, date.day,
                                                     date.hour, date.minute, date.second)

fourcc = cv2.VideoWriter_fourcc(*'X264')
frame_rate = 16
SCREEN_SIZE = (960,540)
out = cv2.VideoWriter(filename, fourcc,framerate, SCREEN_SIZE)

while True:
        img = ImageGrab.grab()
        frame = np.array(img)

        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
        out.write(frame)
        cv2.imshow('screenshot', frame)

        if cv2.waitKey(1) == ord("q"):
            break
cv2.destroyAllWindows()
out.release()
python-3.x opencv python-imaging-library video-processing video-capture
1个回答
0
投票
frame_rate = 16
SCREEN_SIZE =(960,540)

两者都太低,您可能希望frame_rate为30,屏幕尺寸为1920x1080p。

还有一个额外的信息:.mp4对于屏幕录制而言是一种错误的格式,我知道OBS建议使用.flv,因为如果录制突然结束,它不会破坏整个文件,这与.mp4不同。

© www.soinside.com 2019 - 2024. All rights reserved.