前一篇 <Pyside6+OpneCV每分鐘記錄一個錄影檔案>
有一些問題:
1. 錄影結束時間並非停在這一分鐘結束,而是以錄影起始時間+1分鐘錄影長度為結束時間
2. 每分鐘錄影結束,webcam會被關閉,創立新的錄影檔後並重新啟動webcam,這花費幾秒鐘初始化
造成每分鐘錄影檔案會有缺漏一段時間沒有錄影。
因此,重新思考如何解決這些問題
1. 創建攝影機一次,每次錄影檔案結束並不會關閉攝影機
start_time 為目前錄影開始時間
2. 接續上面while-loop,每次計算經過時間(秒) elapsed_secs
區分三種狀況
a) 第一次錄影 self.video_writer == None
b) 經過時間達到該分鐘結束 elapsed_secs >= self.target_secs
釋放當前錄影檔案 self.video_writer.release()
創立一個新的錄影檔案 self.create_video()
c) 經過時間未達到該分鐘結束,持續寫入frame至目前錄影檔案
3. 創立一個新的錄影檔案 self.create_video()
根據目前時間命名錄影檔案名稱
更新開始錄影時間: self.start_time
更新結束錄影時間需經過秒數: 60秒減去開始錄影起始時間的秒數 self.target_secs
通知新的錄影檔案名稱
留言列表