kob-freshconsulting commited on
Commit
227eeeb
·
1 Parent(s): b9267f8

test: limit framerate

Browse files
Files changed (1) hide show
  1. src/app.py +11 -0
src/app.py CHANGED
@@ -5,6 +5,7 @@ from utils import start_html_stream
5
  import cv2
6
  import gc
7
  import queue
 
8
 
9
  app = Flask(__name__)
10
  PORT = 7860
@@ -20,9 +21,15 @@ def start_flask():
20
 
21
  def process_stream():
22
  video_file = "videos/classroom.mp4"
 
23
  cap = cv2.VideoCapture(video_file)
 
24
  cap.release()
 
25
  stream = CamGear(source=video_file).start()
 
 
 
26
  while True:
27
  frame = stream.read()
28
  if frame is None:
@@ -39,6 +46,10 @@ def process_stream():
39
  del frame
40
  gc.collect()
41
 
 
 
 
 
42
  def main():
43
  flask_thread = threading.Thread(target=start_flask)
44
  flask_thread.daemon = True
 
5
  import cv2
6
  import gc
7
  import queue
8
+ import time
9
 
10
  app = Flask(__name__)
11
  PORT = 7860
 
21
 
22
  def process_stream():
23
  video_file = "videos/classroom.mp4"
24
+
25
  cap = cv2.VideoCapture(video_file)
26
+ framerate = cap.get(cv2.CAP_PROP_FPS)
27
  cap.release()
28
+
29
  stream = CamGear(source=video_file).start()
30
+ FRAME_INTERVAL = 1 / framerate
31
+
32
+ next_frame_time = time.time()
33
  while True:
34
  frame = stream.read()
35
  if frame is None:
 
46
  del frame
47
  gc.collect()
48
 
49
+ next_frame_time += FRAME_INTERVAL
50
+ while time.time() < next_frame_time:
51
+ pass # Busy-wait until it's time for the next frame
52
+
53
  def main():
54
  flask_thread = threading.Thread(target=start_flask)
55
  flask_thread.daemon = True