問題陳述:基本上我正在嘗試制作一個基于樹莓派零的行車記錄儀。我需要一個 10 秒的剪輯,檔案名是當前日期和時間。只要 pi 有電源,這個回圈就應該繼續。我已經撰寫了如圖所示的腳本,但它不會創建 10 秒剪輯的單獨檔案,而是創建一個大檔案。關于我做錯了什么的任何線索?
import cv2
import time
cv2.namedWindow("dashcam")
video = cv2.VideoCapture(1)
if video.isOpened(): # try to get the first frame
rval, frame = video.read()
else:
rval = False
frame_width = int(video.get(3))
frame_height = int(video.get(4))
timestr = time.strftime("%Y_%m_%d__%H_%M_%S")
out = cv2.VideoWriter(timestr '.avi', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10, (frame_width, frame_height))
now = time.time()
while rval:
rval, frame = video.read()
if time.time() - now < 5:
cv2.imshow('dashcam', frame)
out.write(frame)
elif time.time() - now > 5:
now = time.time()
key = cv2.waitKey(1)
if key == 27: # exit on ESC
break
video.release()
out.release()
cv2.destroyAllWindows()
uj5u.com熱心網友回復:
因為您只創建一次“out”,所以您的代碼將只保存 1 個視頻。你可以試試我下面的代碼。如果您對我的代碼有任何錯誤,請向我報告。
import cv2
import time
cv2.namedWindow("dashcam")
video = cv2.VideoCapture(1)
last_save_time = -10
while video.isOpened():
rval, frame = video.read()
if not rval:
break
frame_width = int(video.get(3))
frame_height = int(video.get(4))
current_time = time.time()
if current_time - last_save_time > 10:
last_save_time = current_time
timestr = time.strftime("%Y_%m_%d__%H_%M_%S")
out = cv2.VideoWriter(timestr '.avi', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 25, (frame_width, frame_height))
cv2.imshow('dashcam', frame)
out.write(frame)
key = cv2.waitKey(1)
if key == 27: # exit on ESC
break
video.release()
cv2.destroyAllWindows()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/405041.html
標籤:
