      def add_browser_buttons(self, frame, sysbrowser, filepath):
          """ Add correct file browser button for control """
          logger.debug("Adding browser buttons: (sysbrowser: '%s', filepath: '%s'",
                       sysbrowser, filepath)
          img = Images().icons[sysbrowser]
          action = getattr(self, "ask_" + sysbrowser)
          filetypes = self.option.get("filetypes", "default")
          fileopn = ttk.Button(frame, image=img,
                               command=lambda cmd=action: cmd(filepath,
                                                              filetypes))
          fileopn.pack(padx=(0, 5), side=tk.RIGHT)
          logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                       action, filetypes)
  
      @staticmethod
      def ask_folder(filepath, filetypes=None):
          """ Pop-up to get path to a directory
              :param filepath: tkinter StringVar object
 
</s> remove         sysbrowser = "folder"
 </s> add         sysbrowser = ["folder"] </s> remove             sysbrowser = "context"
 </s> add             sysbrowser = ["context"]
        logger.debug("sysbrowser: %s, filetypes: '%s'", sysbrowser, filetypes) </s> remove             sysbrowser = "load"
 </s> add             sysbrowser = ["load"] </s> remove             sysbrowser = "save"
 </s> add             sysbrowser = ["save"]
        elif action == cli.DirOrFileFullPaths:
            sysbrowser = ["folder", "load"] </s> remove         src = os.path.join(self.folder, filename)
        logger.trace("Loading image: '%s'", src)
        image = cv2.imread(src)  # pylint: disable=no-member
 </s> add         if self.vid_cap:
            image = self.load_video_frame(filename)
        else:
            src = os.path.join(self.folder, filename)
            logger.trace("Loading image: '%s'", src)
            image = cv2.imread(src)  # pylint: disable=no-member
        return image

    def load_video_frame(self, filename):
        """ Load a requested frame from video """
        frame = os.path.splitext(filename)[0]
        logger.trace("Loading video frame: '%s'", frame)
        frame_no = int(frame[frame.rfind("_") + 1:])
        self.vid_cap.set(cv2.CAP_PROP_POS_FRAMES, frame_no)  # pylint: disable=no-member
        _, image = self.vid_cap.read()
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
      def add_browser_buttons(self, frame, sysbrowser, filepath):
          """ Add correct file browser button for control """
          logger.debug("Adding browser buttons: (sysbrowser: '%s', filepath: '%s'",
                       sysbrowser, filepath)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
        for browser in sysbrowser:
            img = Images().icons[browser]
            action = getattr(self, "ask_" + browser)
            filetypes = self.option.get("filetypes", "default")
            fileopn = ttk.Button(frame, image=img,
                                 command=lambda cmd=action: cmd(filepath,
                                                                filetypes))
            fileopn.pack(padx=(0, 5), side=tk.RIGHT)
            logger.debug("Added browser buttons: (action: %s, filetypes: %s",
                         action, filetypes)
  
      @staticmethod
      def ask_folder(filepath, filetypes=None):
          """ Pop-up to get path to a directory
              :param filepath: tkinter StringVar object
keep keep keep keep replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Add ability to extract from and convert from a video file (#559)

* Add ability to extract from and convert from a video file

* Update cli helptext. Add filebrowser button for GUI input

* Add video support to Alignments Tool 
lib/gui/command.py