code: @Override
      protected void doStart() throws Exception {
          super.doStart();
  
          installer = resolveInstaller();
  
          String requiredPackages = getRequiredPackages();
  
          try {
              if (!installer.install(requiredPackages) && !ignoreInstallerProblems) {
                  throw new IllegalStateException("Unable to start webcam, failed to install dependencies");
              }
          } catch (Exception ex) {
              if(ignoreInstallerProblems) {
                  LOG.warn(ex.getMessage());
              } else {
                  throw ex;
              }
          }
          
          //Use the provided webcam/s
          if (getWebcams().size() == 0) {
              loadWebcamDriver();
  
              List<Webcam> webcamList = Webcam.getWebcams(timeout);
              if (webcamList == null || webcamList.size() == 0) {
                  throw new IllegalStateException("No webcams found");
              }
              webcamList.forEach(w -> webcams.put(w.getDevice().getName(), w));
  
              LOG.info("Detected webcams : {}", webcams.keySet());
          }
          
      }
docs: Life-cycle