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