# File lib/headless/video/video_recorder.rb, line 21
    def initialize(display, dimensions, options = {})
      @display = display
      @dimensions = dimensions[/.+(?=x)/]

      @pid_file_path = options.fetch(:pid_file_path, "/tmp/.headless_ffmpeg_#{@display}.pid")
      @tmp_file_path = options.fetch(:tmp_file_path, "/tmp/.headless_ffmpeg_#{@display}.mov")
      @log_file_path = options.fetch(:log_file_path, "/dev/null")
      @codec = options.fetch(:codec, "qtrle")
      @frame_rate = options.fetch(:frame_rate, 30)
      @provider = options.fetch(:provider, :libav)  # or :ffmpeg

      # If no provider_binary_path was specified, then
      # make a guess based upon the provider.
      @provider_binary_path = options.fetch(:provider_binary_path, guess_the_provider_binary_path)

      @extra = Array(options.fetch(:extra, []))
      @devices = Array(options.fetch(:devices, []))

      CliUtil.ensure_application_exists!(provider_binary_path, "#{provider_binary_path} not found on your system. Install it or change video recorder provider")
    end