@@ -144,6 +144,7 @@ def run_simulation(
144144 source_id : int = 0 ,
145145 uri : str = "rtsp://camera/stream" ,
146146 port : int = 5555 ,
147+ fps_check_interval_sec : int = 10 ,
147148) -> None :
148149 """Run the live stream tracker simulation and send via ZeroMQ."""
149150 # Initialize ZeroMQ PUB socket
@@ -154,6 +155,10 @@ def run_simulation(
154155 logger .info ("📡 Sending Live Stream Metadata via ZeroMQ (Ctrl+C to stop)..." )
155156 logger .info ("📡 Publishing on tcp://*:%s" , port )
156157
158+ # FPS tracking
159+ interval_start_time = time .time ()
160+ interval_frame_count = 0
161+
157162 try :
158163 for metadata in live_stream_tracker_simulation (fps = fps , uri = uri ):
159164 # Send metadata via ZeroMQ
@@ -163,6 +168,24 @@ def run_simulation(
163168 frame_objects = metadata ["detections" ],
164169 )
165170
171+ # Track FPS
172+ interval_frame_count += 1
173+ current_time = time .time ()
174+ elapsed = current_time - interval_start_time
175+
176+ # Log average FPS every 10 seconds
177+ if elapsed >= fps_check_interval_sec :
178+ avg_fps = interval_frame_count / elapsed
179+ logger .info (
180+ "📊 Average FPS: %.2f/%02d (over %.1f seconds)" ,
181+ avg_fps ,
182+ fps ,
183+ elapsed ,
184+ )
185+ # Reset counters
186+ interval_start_time = current_time
187+ interval_frame_count = 0
188+
166189 logger .debug (
167190 "[Frame %s] Active Objects: %s" ,
168191 metadata ["frame_num" ],
0 commit comments