【问题标题】:what can i do to improve my video quality in opencv我能做些什么来提高我在 opencv 中的视频质量
【发布时间】:2020-03-01 15:13:52
【问题描述】:

我正在创建一个 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】:

    frame_rate = 16

    SCREEN_SIZE = (960,540)

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

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

    【讨论】:

    • 屏幕尺寸 1920x1080p 提供了一个无法打开的非视频文件,并且 frame_rate = 30 快速录制视频。
    • 这个配置对我来说也很神秘……
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多