| 
														
															@@ -24,6 +24,7 @@ from frigate.log import log_process, root_configurer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.models import Event, Recordings 
														 | 
														
														 | 
														
															 from frigate.models import Event, Recordings 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.mqtt import create_mqtt_client 
														 | 
														
														 | 
														
															 from frigate.mqtt import create_mqtt_client 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.object_processing import TrackedObjectProcessor 
														 | 
														
														 | 
														
															 from frigate.object_processing import TrackedObjectProcessor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from frigate.output import output_frames 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.record import RecordingMaintainer 
														 | 
														
														 | 
														
															 from frigate.record import RecordingMaintainer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.stats import StatsEmitter, stats_init 
														 | 
														
														 | 
														
															 from frigate.stats import StatsEmitter, stats_init 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from frigate.video import capture_camera, track_camera 
														 | 
														
														 | 
														
															 from frigate.video import capture_camera, track_camera 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -128,6 +129,7 @@ class FrigateApp: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         # Queues for clip processing 
														 | 
														
														 | 
														
															         # Queues for clip processing 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.event_queue = mp.Queue() 
														 | 
														
														 | 
														
															         self.event_queue = mp.Queue() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.event_processed_queue = mp.Queue() 
														 | 
														
														 | 
														
															         self.event_processed_queue = mp.Queue() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        self.video_output_queue = mp.Queue() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         # Queue for cameras to push tracked objects to 
														 | 
														
														 | 
														
															         # Queue for cameras to push tracked objects to 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.detected_frames_queue = mp.Queue( 
														 | 
														
														 | 
														
															         self.detected_frames_queue = mp.Queue( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -214,10 +216,25 @@ class FrigateApp: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.detected_frames_queue, 
														 | 
														
														 | 
														
															             self.detected_frames_queue, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.event_queue, 
														 | 
														
														 | 
														
															             self.event_queue, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.event_processed_queue, 
														 | 
														
														 | 
														
															             self.event_processed_queue, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self.video_output_queue, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.stop_event, 
														 | 
														
														 | 
														
															             self.stop_event, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ) 
														 | 
														
														 | 
														
															         ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.detected_frames_processor.start() 
														 | 
														
														 | 
														
															         self.detected_frames_processor.start() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    def start_video_output_processor(self): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        output_processor = mp.Process( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            target=output_frames, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            name=f"output_processor", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            args=( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                self.config, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                self.video_output_queue, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                self.stop_event, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            ), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        output_processor.daemon = True 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        self.output_processor = output_processor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        output_processor.start() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def start_camera_processors(self): 
														 | 
														
														 | 
														
															     def start_camera_processors(self): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         model_shape = (self.config.model.height, self.config.model.width) 
														 | 
														
														 | 
														
															         model_shape = (self.config.model.height, self.config.model.width) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for name, config in self.config.cameras.items(): 
														 | 
														
														 | 
														
															         for name, config in self.config.cameras.items(): 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -308,10 +325,10 @@ class FrigateApp: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.log_process.terminate() 
														 | 
														
														 | 
														
															             self.log_process.terminate() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             sys.exit(1) 
														 | 
														
														 | 
														
															             sys.exit(1) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.start_detectors() 
														 | 
														
														 | 
														
															         self.start_detectors() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        self.start_video_output_processor() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.start_detected_frames_processor() 
														 | 
														
														 | 
														
															         self.start_detected_frames_processor() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.start_camera_processors() 
														 | 
														
														 | 
														
															         self.start_camera_processors() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.start_camera_capture_processes() 
														 | 
														
														 | 
														
															         self.start_camera_capture_processes() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        self.start_birdseye_outputter() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.init_stats() 
														 | 
														
														 | 
														
															         self.init_stats() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.init_web_server() 
														 | 
														
														 | 
														
															         self.init_web_server() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.start_event_processor() 
														 | 
														
														 | 
														
															         self.start_event_processor() 
														 |