code: def ffmpeg_stabilize_video(
      inputfile,
      outputfile=None,
      output_dir="",
      overwrite_file=True,
      logger="bar",
  ):
      """
      Stabilizes ``filename`` and write the result to ``output``.
  
      Parameters
      ----------
  
      inputfile : str
        The name of the shaky video.
  
      outputfile : str, optional
        The name of new stabilized video. Defaults to appending '_stabilized' to
        the input file name.
  
      output_dir : str, optional
        The directory to place the output video in. Defaults to the current
        working directory.
  
      overwrite_file : bool, optional
        If ``outputfile`` already exists in ``output_dir``, then overwrite
        ``outputfile`` Defaults to True.
      """
      if not outputfile:
          without_dir = os.path.basename(inputfile)
          name, ext = os.path.splitext(without_dir)
          outputfile = f"{name}_stabilized{ext}"
  
      outputfile = os.path.join(output_dir, outputfile)
      cmd = [
          FFMPEG_BINARY,
          "-i",
          inputfile,
          "-vf",
          "deshake",
          outputfile,
      ]
      if overwrite_file:
          cmd.append("-y")
      subprocess_call(cmd, logger=logger)
  
file_path: moviepy/moviepy/video/io/ffmpeg_tools.py
imports: import os
  from moviepy.config import FFMPEG_BINARY
  from moviepy.decorators import convert_parameter_to_seconds, convert_path_to_string
  from moviepy.tools import subprocess_call
label_desc: Use image node_id 5 for calling a global function with example usage: ffmpeg_stabilize_video(inputfile, outputfile, output_dir, overwrite_file, logger) without return types