def initVideoDevice(self): """ Initialize the video device. """ device = None # use a file as the video source if self.video_file is not None: device = cv2.VideoCapture(self.video_file) # Use a device as the video source else: # If an analog camera is used, skip the ping ip_cam = True try: int(self.config.deviceID) ip_cam = False except: pass if ip_cam: ### If the IP camera is used, check first if it can be pinged # Extract the IP address ip = re.findall(r"[0-9]+(?:\.[0-9]+){3}", self.config.deviceID) # Check if the IP address was found if ip: ip = ip[0] # Try pinging the IP address if ping(ip): log.info("Camera IP ping successful!") else: log.error("Can't ping the camera IP!") return None else: return None # Init the video device log.info("Initializing the video device...") device = cv2.VideoCapture(self.config.deviceID) # Try setting the resultion if using a video device, not gstreamer try: # This will fail if the video device is a gstreamer pipe int(self.config.deviceID) # Set the resolution (crashes if using an IP camera and gstreamer!) device.set(3, self.config.width) device.set(4, self.config.height) except: pass return device
def initVideoDevice(self): """ Initialize the video device. """ device = None # use a file as the video source if self.video_file is not None: device = cv2.VideoCapture(self.video_file) # Use a device as the video source else: # If an analog camera is used, skip the ping ip_cam = False if "rtsp" in str(self.config.deviceID): ip_cam = True if ip_cam: ### If the IP camera is used, check first if it can be pinged # Extract the IP address ip = re.findall(r"[0-9]+(?:\.[0-9]+){3}", self.config.deviceID) # Check if the IP address was found if ip: ip = ip[0] # Try pinging 5 times ping_success = False for i in range(500): print('Trying to ping the IP camera...') ping_success = ping(ip) if ping_success: log.info("Camera IP ping successful!") break time.sleep(5) if not ping_success: log.error("Can't ping the camera IP!") return None else: return None # Init the video device log.info("Initializing the video device...") log.info("Device: " + str(self.config.deviceID)) if self.config.force_v4l2: device = cv2.VideoCapture(self.config.deviceID, cv2.CAP_V4L2) device.set(cv2.CAP_PROP_CONVERT_RGB, 0) else: device = cv2.VideoCapture(self.config.deviceID) # Try setting the resultion if using a video device, not gstreamer try: # This will fail if the video device is a gstreamer pipe int(self.config.deviceID) # Set the resolution (crashes if using an IP camera and gstreamer!) device.set(3, self.config.width_device) device.set(4, self.config.height_device) except: pass return device
def initVideoDevice(self): """ Initialize the video device. """ device = None # use a file as the video source if self.video_file is not None: device = cv2.VideoCapture(self.video_file) # Use a device as the video source else: # If an analog camera is used, skip the ping ip_cam = True try: int(self.config.deviceID) ip_cam = False except: pass if ip_cam: ### If the IP camera is used, check first if it can be pinged # Extract the IP address ip = re.findall(r"[0-9]+(?:\.[0-9]+){3}", self.config.deviceID) # Check if the IP address was found if ip: ip = ip[0] # Try pinging 5 times ping_success = False for i in range(500): print('Trying to ping the IP camera...') ping_success = ping(ip) if ping_success: log.info("Camera IP ping successful!") break time.sleep(5) if not ping_success: log.error("Can't ping the camera IP!") return None else: return None # Init the video device log.info("Initializing the video device...") device = cv2.VideoCapture(self.config.deviceID) # Try setting the resultion if using a video device, not gstreamer try: # This will fail if the video device is a gstreamer pipe int(self.config.deviceID) # Set the resolution (crashes if using an IP camera and gstreamer!) device.set(3, self.config.width_device) device.set(4, self.config.height_device) except: pass return device