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)
@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