PythonでのOpenCVを利用した動画ファイルの再生における再生速度について
解決したいこと
PythonのバージョンはPython 3.10.7で、macを使用しています。
PythonでOpenCVを用いて動画ファイルを再生しようとしております。
その際に動画の再生速度を元の動画ファイル(fps30)にできるだけ合わせたいのですが、エラーを発生させずに再生はできるものの動画速度を合わせることができません。具体的にはかなり遅い速度で再生されます。
どなたか解決策を教えていただけると嬉しいです。
該当するソースコード
import cv2
import time
cap = cv2.VideoCapture('sample.mp4')
# fps
fps = 30
# キャプチャできなかったらエラー表示
if cap.isOpened()== False:
print("Error!")
# 動画の再生
while cap.isOpened():
# 次のフレームを読み込み
ret, frame = cap.read()
# 画像がなければ終了
if not ret:
break
# 画像があれば表示
if ret == True:
# 画像の表示
cv2.imshow('frame',frame)
# (1/fps)秒一時停止
time.sleep(1/fps)
# Qキーで停止
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
自分で試したこと
調べていくうちにwhileの回転速度が速すぎることが原因ではないかと思い、上のコードではtime.sleepで調整しておりますが、うまくいっていません。
参考にさせていただいたWebサイトは多くあり、「opencv 再生速度」で検索したWebサイトはかなり拝見しました。再生速度に関しては特にこちらを参考にしました。
URL①:https://code-graffiti.com/opencv-using-video-files-in-python/
URL②:https://teratail.com/questions/477fwrr3lj61eg
0