Spaces:
Sleeping
Sleeping
Commit
·
227eeeb
1
Parent(s):
b9267f8
test: limit framerate
Browse files- 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
|