          output_args.extend(["-c:v", codec])
          output_args.extend(["-crf", str(self.config["crf"])])
          output_args.extend(["-preset", self.config["preset"]])
  
          if tune is not None and tune in self.valid_tune[codec]:
              output_args.extend(["-tune", tune])
  
          if codec == "libx264" and self.config["profile"] != "auto":
              output_args.extend(["-profile:v", self.config["profile"]])
  
 
</s> remove         output_args = ["-vf", "scale={}".format(self.output_dimensions)]
 </s> add         output_args = ["-vf", f"scale={self._output_dimensions}"] </s> remove     def valid_tune(self):
        """ Return whether selected tune is valid for selected codec """
 </s> add     def _valid_tunes(self) -> dict:
        """ dict: Valid tune selections for libx264 and libx265 codecs. """ </s> remove     def output_params(self):
        """ FFMPEG Output parameters """
 </s> add     def _output_params(self) -> List[str]:
        """ list: The FFMPEG Output parameters """ </s> remove     def set_frame_order(self, total_count):
        """ Return the full list of frames to be converted in order """
        if self.frame_ranges is None:
 </s> add     def _get_output_filename(self) -> str:
        """ Return full path to video output file.

        The filename is the same as the input video with `"_converted"` appended to the end. The
        file extension is as selected in the plugin settings. If a file already exists with the
        given filename, then `"_1"` is appended to the end of the filename. This number iterates
        until a valid filename that does not exist is found.

        Returns
        -------
        str
            The full path to the output video filename
        """
        filename = os.path.basename(self._source_video)
        filename = os.path.splitext(filename)[0]
        ext = self.config["container"]
        idx = 0
        while True:
            out_file = f"{filename}_converted{'' if idx == 0 else f'_{idx}'}.{ext}"
            retval = os.path.join(self.output_folder, out_file)
            if not os.path.exists(retval):
                break
            idx += 1
        logger.info("Outputting to: '%s'", retval)
        return retval

    def _set_frame_order(self, total_count: int) -> List[int]:
        """ Obtain the full list of frames to be converted in order.

        Parameters
        ----------
        total_count: int
            The total number of frames to be converted

        Returns
        -------
        list
            Full list of all frame indices to be converted
        """
        if self._frame_ranges is None: </s> remove         if self.frame_ranges is not None:
 </s> add         if self._frame_ranges is not None:
        if tune is not None and tune in self._valid_tunes[codec]:
          output_args.extend(["-c:v", codec])
          output_args.extend(["-crf", str(self.config["crf"])])
          output_args.extend(["-preset", self.config["preset"]])
  
        if tune is not None and tune in self._valid_tunes[codec]:
              output_args.extend(["-tune", tune])
  
          if codec == "libx264" and self.config["profile"] != "auto":
              output_args.extend(["-profile:v", self.config["profile"]])
  
keep keep keep keep replace keep keep keep keep keep
 ffmpeg writer: Create new filename if output pre-exists 
plugins/convert/writer/ffmpeg.py