0

我正在使用下面的 python 代码在我的一个框架中记录 Windows 屏幕。但是 opencv 捕获的视频文件大小只有 6KB。

对于早期的类似问题,我已经尝试了 stackoverflow 中建议的所有解决方法,但无济于事。1)我重命名了ffmpeg dll。2)我已经在python目录下复制了3)我还将变量的路径添加到了环境变量中4)改变了高度和宽度。

import time, threading, numpy as np, cv2
from PIL import ImageGrab

def startThread(running):
    fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
    vid = cv2.VideoWriter('record.avi', fourcc, 30, (960, 720))
    while running.is_set():
        img = ImageGrab.grab()
        img_np = np.array(img)
        vid.write(img_np)

def stopThread():
    time.sleep(10)
    running.clear()

def startVideoThread():
    running.set()
    thread = threading.Thread(target=startThread, args=(running,))
    thread.start()

if __name__ == "__main__":
    running = threading.Event()
    startVideoThread()
    stopThread()

所有这些都没有解决我的问题。让我发疯的一件事是相同的代码在我的同事笔记本电脑上运行,并且配置与我的相同。任何帮助都感激不尽。

4

1 回答 1

-1

ImageGrab.grab()有大小,但它必须是VideoWriter大小。

于 2019-12-18T03:32:38.787 回答