-
Notifications
You must be signed in to change notification settings - Fork 0
/
recorder.py
37 lines (31 loc) · 1.03 KB
/
recorder.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
import cv2
import numpy as np
import pyautogui
import subprocess
import pygetwindow as gw
from datetime import datetime
from tzlocal import get_localzone
url = "https://multiuser-sketchpad-colors.glitch.me"
# TODO OPEN WINDOW IN FULLSCREEN
child = subprocess.Popen(f"start chrome {url} --new-window", shell=True)
# TODO GET ACTIVE WINDOW NAME
window_name = "Multiuser Sketchpad (Colors)"
date = datetime.now()
localdate = date.astimezone(get_localzone()).strftime("%Y-%m-%d %H-%M-%S")
filename = f"./output/{window_name} {localdate}.mp4"
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
fps = 60.0
record_seconds = 5
w = gw.getActiveWindow()
w.activate()
out = cv2.VideoWriter(filename, fourcc, fps, tuple(w.size))
for i in range(int(record_seconds * fps)):
img = pyautogui.screenshot(region=(w.left, w.top, w.width, w.height))
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow("screenshot", frame)
if cv2.waitKey(1) == ord("q"):
break
cv2.destroyAllWindows()
out.release()