我想用 OpenCV 在 python 中顯示一個視頻,我知道該怎么做,但這就是我的做法
import cv2
cap = cv2.VideoCapture("Resorces/test.mp4")
while True:
success, img = cap.read()
cv2.imshow("video", img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
但問題出在最后一行有一個 cv2.waitKey 我已經插入了 1milesecond 但視頻的長度是 30 秒通過這樣做視頻非常快而且很快結束
所以我希望視頻是 30 秒,所以我應該放什么
這是我的視頻 https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4
請幫幫我謝謝
uj5u.com熱心網友回復:
用于fps = cap.get(cv2.CAP_PROP_FPS)獲取每秒幀數,然后您可以將1000 / fps其劃分為每秒 1000 毫秒并轉換為int獲取幀延遲以獲得逼真的播放。
注意:影像中有一些開銷讀取,因此這只是近似值,但實際上我發現只要您不在while回圈中進行任何繁重的處理就足夠了。
完整的代碼清單,
import cv2
cap = cv2.VideoCapture("Resorces/test.mp4")
fps = cap.get(cv2.CAP_PROP_FPS)
frm_delay = int(1000 / fps)
while True:
success, img = cap.read()
cv2.imshow("video", img)
if cv2.waitKey(frm_delay) & 0xFF == ord('q'):
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/437277.html
