OpenCV 无需 waitKey 即可播放视频

问题描述 投票:0回答:1

我正在尝试在 Python 中使用 OpenCV 播放视频。为此,我使用此代码:

i = 0
while True:
    frame = frames[i]
    cv2.imshow("video", frame)
    cv2.waitKey(int(1000 / frame_rate))
    i += 1

但是一旦用户使用键盘,播放速度就会改变,视频会以“快进”模式播放。我不需要按键检测,因此我尝试将

waitKey
替换为
time.sleep
,但视频根本无法播放。

如何防止键盘改变播放速度?

python opencv user-interface
1个回答
0
投票
如果在延迟期间没有按下任何键,则

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
© www.soinside.com 2019 - 2024. All rights reserved.