Spaces:
Sleeping
Sleeping
fix: update port to use env + rempove framerate cap + put video on repeat
Browse files- src/app.py +14 -9
src/app.py
CHANGED
@@ -2,8 +2,10 @@ from flask import Flask, Response, stream_with_context
|
|
2 |
import cv2
|
3 |
import threading
|
4 |
import time
|
|
|
5 |
|
6 |
app = Flask(__name__)
|
|
|
7 |
|
8 |
latest_frame = None
|
9 |
lock = threading.Lock()
|
@@ -27,13 +29,16 @@ def video_reader():
|
|
27 |
while True:
|
28 |
ret, frame = cap.read()
|
29 |
|
30 |
-
if ret:
|
|
|
|
|
|
|
31 |
with lock:
|
32 |
cv2.putText(frame, f"{measured_fps: .0f}", (frame.shape[1] - 70, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA)
|
33 |
latest_frame = frame
|
34 |
-
frame_count += 1
|
35 |
|
36 |
# measure FPS
|
|
|
37 |
now = time.time()
|
38 |
if now - last_time >= rolling_duration:
|
39 |
measured_fps = frame_count / (now - last_time)
|
@@ -41,12 +46,12 @@ def video_reader():
|
|
41 |
last_time = now
|
42 |
|
43 |
# control framerate
|
44 |
-
next_frame_time += frame_duration
|
45 |
-
sleep_time = next_frame_time - time.time()
|
46 |
-
if sleep_time > 0:
|
47 |
-
|
48 |
-
else:
|
49 |
-
|
50 |
|
51 |
def generate():
|
52 |
while True:
|
@@ -65,4 +70,4 @@ def video_feed():
|
|
65 |
if __name__ == '__main__':
|
66 |
t = threading.Thread(target=video_reader, daemon=True)
|
67 |
t.start()
|
68 |
-
app.run(host='0.0.0.0', port=
|
|
|
2 |
import cv2
|
3 |
import threading
|
4 |
import time
|
5 |
+
import os
|
6 |
|
7 |
app = Flask(__name__)
|
8 |
+
PORT = int(os.environ.get("PORT", 5000))
|
9 |
|
10 |
latest_frame = None
|
11 |
lock = threading.Lock()
|
|
|
29 |
while True:
|
30 |
ret, frame = cap.read()
|
31 |
|
32 |
+
if not ret:
|
33 |
+
cap.set(cv2.CAP_PROP_POS_FRAMES, 0) # Rewind to start if video ends
|
34 |
+
continue
|
35 |
+
else:
|
36 |
with lock:
|
37 |
cv2.putText(frame, f"{measured_fps: .0f}", (frame.shape[1] - 70, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA)
|
38 |
latest_frame = frame
|
|
|
39 |
|
40 |
# measure FPS
|
41 |
+
frame_count += 1
|
42 |
now = time.time()
|
43 |
if now - last_time >= rolling_duration:
|
44 |
measured_fps = frame_count / (now - last_time)
|
|
|
46 |
last_time = now
|
47 |
|
48 |
# control framerate
|
49 |
+
# next_frame_time += frame_duration
|
50 |
+
# sleep_time = next_frame_time - time.time()
|
51 |
+
# if sleep_time > 0:
|
52 |
+
# time.sleep(sleep_time)
|
53 |
+
# else:
|
54 |
+
# next_frame_time = time.time()
|
55 |
|
56 |
def generate():
|
57 |
while True:
|
|
|
70 |
if __name__ == '__main__':
|
71 |
t = threading.Thread(target=video_reader, daemon=True)
|
72 |
t.start()
|
73 |
+
app.run(host='0.0.0.0', port=PORT, threaded=True)
|