我正在尝试在 Python 中使用 OpenCV 播放视频。为此,我使用此代码:
i = 0
while True:
frame = frames[i]
cv2.imshow("video", frame)
cv2.waitKey(int(1000 / frame_rate))
i += 1
但是一旦用户使用键盘,播放速度就会改变,视频会以“快进”模式播放。我不需要按键检测,因此我尝试将
waitKey
替换为 time.sleep
,但视频根本无法播放。
如何防止键盘改变播放速度?
cv2.waitKey
的返回值为 -1;如果按下了某个键,则返回与击键相对应的整数。您可以使用它来检查是否使用了延迟,如果击键中断了延迟,则使用 time.sleep
引入延迟:
from time import sleep
i = 0
while True:
frame = frames[i]
cv2.imshow("video", frame)
keypress = cv2.waitKey(int(1000 / frame_rate))
if keypress >= 0: # a key is being pressed
time.sleep(1 / frame_rate) # wait for 1 / frame_rate seconds
i += 1