diff --git a/menu/menu_setting.c b/menu/menu_setting.c
index c3af7fe2ca..778a1d3577 100644
--- a/menu/menu_setting.c
+++ b/menu/menu_setting.c
@@ -337,16 +337,16 @@ static void setting_get_string_representation_video_stream_quality(
    /* TODO/FIXME - localize this */
    switch (*setting->value.target.unsigned_integer)
    {
-      case 8:
+      case RECORD_CONFIG_TYPE_STREAMING_CUSTOM:
          strlcpy(s, "Custom", len);
          break;
-      case 9:
+      case RECORD_CONFIG_TYPE_STREAMING_LOW_QUALITY:
          strlcpy(s, "Low", len);
          break;
-      case 10:
+      case RECORD_CONFIG_TYPE_STREAMING_MED_QUALITY:
          strlcpy(s, "Medium", len);
          break;
-      case 11:
+      case RECORD_CONFIG_TYPE_STREAMING_HIGH_QUALITY:
          strlcpy(s, "High", len);
          break;
    }
@@ -361,28 +361,28 @@ static void setting_get_string_representation_video_record_quality(rarch_setting
    /* TODO/FIXME - localize this */
    switch (*setting->value.target.unsigned_integer)
    {
-      case 0:
+      case RECORD_CONFIG_TYPE_RECORDING_CUSTOM:
          strlcpy(s, "Custom", len);
          break;
-      case 1:
+      case RECORD_CONFIG_TYPE_RECORDING_LOW_QUALITY:
          strlcpy(s, "Low", len);
          break;
-      case 2:
+      case RECORD_CONFIG_TYPE_RECORDING_MED_QUALITY:
          strlcpy(s, "Medium", len);
          break;
-      case 3:
+      case RECORD_CONFIG_TYPE_RECORDING_HIGH_QUALITY:
          strlcpy(s, "High", len);
          break;
-      case 4:
+      case RECORD_CONFIG_TYPE_RECORDING_LOSSLESS_QUALITY:
          strlcpy(s, "Lossless", len);
          break;
-      case 5:
+      case RECORD_CONFIG_TYPE_RECORDING_WEBM_FAST:
          strlcpy(s, "WebM Fast", len);
          break;
-      case 6:
+      case RECORD_CONFIG_TYPE_RECORDING_WEBM_HIGH_QUALITY:
          strlcpy(s, "WebM High Quality", len);
          break;
-      case 7:
+      case RECORD_CONFIG_TYPE_RECORDING_GIF:
          strlcpy(s, "GIF", len);
          break;
    }
@@ -7295,7 +7295,7 @@ static bool setting_append_list(
             (*list)[list_info->index - 1].offset_by = 1;
             menu_settings_list_current_add_range(list, list_info, 1, 65536, 1, true, true);
 
-           CONFIG_UINT(
+            CONFIG_UINT(
                list, list_info,
                &settings->uints.video_stream_quality,
                MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY,
diff --git a/record/drivers/record_ffmpeg.c b/record/drivers/record_ffmpeg.c
index 82a7887e7c..851c0975fb 100644
--- a/record/drivers/record_ffmpeg.c
+++ b/record/drivers/record_ffmpeg.c
@@ -571,7 +571,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
          params->out_pix_fmt          = PIX_FMT_YUV420P;
 
          strlcpy(params->vcodec, "libx264", sizeof(params->vcodec));
-         strlcpy(params->acodec, "libmp3lame", sizeof(params->acodec));
+         strlcpy(params->acodec, "aac", sizeof(params->acodec));
 
          av_dict_set(&params->video_opts, "preset", "ultrafast", 0);
          av_dict_set(&params->video_opts, "tune", "animation", 0);
@@ -587,7 +587,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
          params->out_pix_fmt          = PIX_FMT_YUV420P;
 
          strlcpy(params->vcodec, "libx264", sizeof(params->vcodec));
-         strlcpy(params->acodec, "libmp3lame", sizeof(params->acodec));
+         strlcpy(params->acodec, "aac", sizeof(params->acodec));
 
          av_dict_set(&params->video_opts, "preset", "superfast", 0);
          av_dict_set(&params->video_opts, "tune", "animation", 0);
@@ -603,7 +603,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
          params->out_pix_fmt          = PIX_FMT_YUV444P;
 
          strlcpy(params->vcodec, "libx264", sizeof(params->vcodec));
-         strlcpy(params->acodec, "libmp3lame", sizeof(params->acodec));
+         strlcpy(params->acodec, "aac", sizeof(params->acodec));
 
          av_dict_set(&params->video_opts, "preset", "superfast", 0);
          av_dict_set(&params->video_opts, "tune", "animation", 0);
@@ -663,7 +663,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
          strlcpy(params->vcodec, "gif", sizeof(params->vcodec));
          strlcpy(params->acodec, "", sizeof(params->acodec));
 
-         av_dict_set(&params->video_opts, "framerate", "50", 0);
+         av_dict_set(&params->video_opts, "framerate", "30", 0);
          av_dict_set(&params->audio_opts, "audio_global_quality", "0", 0);
          break;
       case RECORD_CONFIG_TYPE_STREAMING_NETPLAY:
@@ -694,7 +694,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
          params->scale_factor = 1;
       strlcpy(params->format, "matroska", sizeof(params->format));
    }
-   else if (preset >= RECORD_CONFIG_TYPE_RECORDING_WEBM_FAST && settings->uints.video_record_quality < RECORD_CONFIG_TYPE_RECORDING_GIF)
+   else if (preset >= RECORD_CONFIG_TYPE_RECORDING_WEBM_FAST && preset < RECORD_CONFIG_TYPE_RECORDING_GIF)
    {
       if (!settings->bools.video_gpu_record)
          params->scale_factor = settings->uints.video_record_scale_factor > 0 ?
@@ -705,11 +705,7 @@ static bool ffmpeg_init_config_common(struct ff_config_param *params, unsigned p
    }
    else if (preset <= RECORD_CONFIG_TYPE_STREAMING_LOW_QUALITY)
    {
-      if (!settings->bools.video_gpu_record)
-         params->scale_factor = settings->uints.video_record_scale_factor > 0 ?
-            settings->uints.video_record_scale_factor : 1;
-      else
-         params->scale_factor = 1;
+      params->scale_factor = 1;
       strlcpy(params->format, "gif", sizeof(params->format));
    }
    else if (preset <= RECORD_CONFIG_TYPE_STREAMING_HIGH_QUALITY)