Python Opencv控件(自定义(增加/减少)视频播放速度

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

我正在编写程序以将视频播放速度控制为自定义速率。

总有办法实现吗?

应该添加什么代码来控制播放速度?

import cv2

cap = cv2.VideoCapture('video.mp4')

while(cap.isOpened()):
    ret, frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
python image opencv detection
1个回答
0
投票

docs中指出:

注意

此函数后应显示waitKey函数图像指定的毫秒数。否则,它将不会显示图片。例如,waitKey(0)将无限显示窗口直到有任何按键(适合图像显示)。 waitKey(25)将显示25毫秒的帧,之后将显示自动关闭。 (如果将其循环播放以阅读视频,它将逐帧显示视频)

cv2.waitKey(X)功能中,X表示要在屏幕上显示图像的毫秒数。在您的情况下,它设置为1,因此理论上您可以达到1000 fps(每秒帧数)。但是帧解码需要花费VideoCapture对象的时间,并限制了帧速率。要更改播放速度,您需要声明变量并将其用作waitKey函数中的参数。

import cv2

cap = cv2.VideoCapture('video.mp4')
frameTime = 10 # time of each frame in ms, you can add logic to change this value.
while(cap.isOpened()):
    ret, frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(frameTime) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
© www.soinside.com 2019 - 2024. All rights reserved.