问题描述
我有一些代码可以捕获屏幕,然后将该图像作为帧写入 mp4。但是,当我再次播放视频时,视频的速度已关闭。我记录了自己运行计时器脚本的过程,秒数几乎以两倍的速度下降。我该怎么办?我遵循的代码是 here,在观看视频时也有同样的问题。
def thread_start_recording(out,fps):
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
out.write(np.array(frame))
if keyboard.is_pressed('q'):
break
time.sleep(1/20)
out.release()
codec = cv2.VideoWriter_fourcc(*"mp4v")
file_name = "recording.mp4"
fps = 20
out = cv2.VideoWriter(file_name,codec,fps,screensize)
thread = Thread(target=thread_start_recording,args=(out,fps))
thread.start()
thread.join()
解决方法
我还没有测试过这个,但是,我认为这种方法应该会得到更好的结果,因为睡眠只是剩余的时间。
https://github.com/user/repo.git