def main(): current_time = datetime.now() current_month_and_yr = datetime.now().strftime("%B %Y") new_dir = make_directory(DESKTOP_PATH, current_month_and_yr) #capture = cv2.VideoCapture(-1) # needed dimensions scr_w, scr_h = get_monitor_res() # codec #fourcc = cv2.VideoWriter_fourcc(*"XVID") # path combined_save_path = new_dir + "\\combined_" + current_time.strftime( DATE_FILE_FORMAT) + FILE_EXT cap_class = Capture(-1, combined_save_path, [scr_w, scr_h]) #writer capture = cap_class.capture writer = cap_class.get_writer() while True: img = ImageGrab.grab() img_np = np.array(img) screen_frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB) # Capture frame-by-frame ret, cam_frame = capture.read() if not ret: break cv2.imshow("Frame", cam_frame) cam_frame_resized = cap_class.resize(cam_frame) cam_frame_merged = cap_class.merge_frame(cam_frame_resized) screen_frame_merged = cap_class.merge_frame(screen_frame) output = cap_class.get_output(cam_frame_merged, screen_frame_merged) writer.write(output) key = cv2.waitKey(1) & 0xFF if key == ord("q"): break # When everything done, release the capture capture.release() writer.release() cv2.destroyAllWindows() # send email on certain date if datetime.now().day == SET_DAY: host, port, address, password = get_settings(SETTINGS_FILE) sender = EmailSender(host, port, address, password) message = "Monthly Email of Video Capture" sender.send_message(message=message, dt_file_path=new_dir, attach=True)