我想使用OpenCV for Python播放视频。想法是让视频在用户按下按钮时进行播放,而在用户不按按钮时暂停播放。代码看起来像这样:
import cv2
source = cv2.VideoCapture(r"path/to/video")
while source.isOpened():
ok, frame = source.read()
if not ok:
break
cv2.imshow('video', frame)
if cv2.waitKey(0) & 0xff == ord('q'):
break
cv2.destroyAllWindows()
这很好用,直到我在4K视频上尝试过为止。当我这样做时,视频似乎停滞不前,直到松开键,然后才显示最后一帧。我设法使用以下方法修复它:
import cv2
source = cv2.VideoCapture(r"path/to/video")
while source.isOpened():
ok, frame = source.read()
if not ok:
break
cv2.imshow('video', frame)
if cv2.waitKey(0) & 0xff == ord('q'):
break
cv2.waitKey(1) # <-- added this
cv2.destroyAllWindows()