forked from hans-ob1/deep_eye
/
recordsave.py
94 lines (63 loc) · 2.38 KB
/
recordsave.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from PyQt5.QtCore import QDate, QTime, QDateTime, Qt
import cv2
import os
class Recorder:
#vidWriter = None
def __init__(self, frame_width, frame_height, fps):
# standardize parameters
self.fixed_Height = frame_height
self.fixed_Width = frame_width
self.fixed_fps = fps
self.predefinedFilePath = "undefined"
self.isRecording = False
self.vidWriter = None
# Date/Time setter and getters
def setDisplayLabel(self):
self.datetime4display = QDateTime.currentDateTime().toString()
def getDisplayLabel(self):
self.setDisplayLabel()
return self.datetime4display
def setCurrentTime(self):
timeRaw = QTime.currentTime().toString(Qt.DefaultLocaleLongDate).split()
timeDiscrete = timeRaw[0].split(':')
self.time4processing = str(timeDiscrete[0]) + "_" + str(timeDiscrete[1]) + "_" + str(timeDiscrete[2]) + "_" + str(timeRaw[1])
def getCurrentTime(self):
self.setCurrentTime()
return self.time4processing
def setTodayDate(self):
self.date4processing = QDate.currentDate().toString(Qt.ISODate)
def getTodayDate(self):
self.setTodayDate()
return self.date4processing
# Methods:
def setPreDefinedFilePath(self, f_Path):
self.predefinedFilePath = f_Path
def getPreDefinedFilePath(self):
return self.predefinedFilePath
def getRecordingStatus(self):
return self.isRecording
def turnOffRecording(self):
self.isRecording = False
def invokeRecording(self):
'''
Description: start recording from the camera and save it to
Saved file format: user_defined_directory/current_date/current_time.avi
'''
self.setCurrentTime()
self.setTodayDate()
completeFolderDir = self.predefinedFilePath + '/' + self.date4processing + '/'
os.makedirs(os.path.dirname(completeFolderDir), exist_ok=True)
completeFilePath = completeFolderDir + str(self.time4processing) + '.avi'
if self.vidWriter == None:
self.vidWriter = cv2.VideoWriter(completeFilePath, cv2.VideoWriter_fourcc('M','J','P','G'), self.fixed_fps, (self.fixed_Width,self.fixed_Height))
else:
self.vidWriter.open(completeFilePath, cv2.VideoWriter_fourcc('M','J','P','G'), self.fixed_fps, (self.fixed_Width,self.fixed_Height))
if self.vidWriter.isOpened:
self.isRecording = True
print("VideoWriter opened successfully")
else:
self.isRecording = False
print("Error! Failed to open video writer")
def killRecorder(self):
if self.vidWriter != None:
self.vidWriter.release()