我正在使用下面的 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()
所有这些都没有解决我的问题。让我发疯的一件事是相同的代码在我的同事笔记本电脑上运行,并且配置与我的相同。任何帮助都感激不尽。