gpt4 book ai didi

python - 读取固定帧率的视频文件

转载 作者:行者123 更新时间:2023-12-02 16:12:36 24 4
gpt4 key购买 nike

我用我的相机和 25 fps 的固定帧速率捕获了一个视频,并尝试用 OpenCV 读取它。

当我使用 OpenCV 读取视频文件时,它会播放但播放速度非常快。
我希望我的程序以 25 fps 的速度播放视频。如何配置 OpenCV 以 25 fps 读取视频文件?

我的代码:

import numpy as np
import cv2

cap = cv2.VideoCapture('vtest.avi')

while(cap.isOpened()):
ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

最佳答案

我找到了一些解决方案。
我放了一个延迟时间来捕获循环。我在从视频文件捕获新图像之前检查延迟。这是我的解决方案代码。
谢谢大家。

import numpy as np
import cv2
from time import time as timer
import sys

video = cv2.VideoCapture('2.avi')
fps = video.get(cv2.CAP_PROP_FPS)
fps /= 1000
framerate = timer()
elapsed = int()
cv2.namedWindow('ca1', 0)
while(video.isOpened()):

start = timer()
# print(start)
ret, frame = video.read()

cv2.imshow('ca1',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

diff = timer() - start
while diff < fps:
diff = timer() - start

elapsed += 1
if elapsed % 5 == 0:
sys.stdout.write('\r')
sys.stdout.write('{0:3.3f} FPS'.format(elapsed / (timer() - framerate)))
sys.stdout.flush()

video.release()
cv2.destroyAllWindows()

关于python - 读取固定帧率的视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com