]> granicus.if.org Git - handbrake/commitdiff
libhb: improve video and audio encoder names.
authorRodeo <tdskywalker@gmail.com>
Sat, 15 Jun 2013 22:32:20 +0000 (22:32 +0000)
committerRodeo <tdskywalker@gmail.com>
Sat, 15 Jun 2013 22:32:20 +0000 (22:32 +0000)
When we only have one encoder for a particular codec:

- don't add (library_name) in the name
- don't prefix with ff or otherwise use the library name in the short name

AAC (ffmpeg) -> AAC (avcodec): works for both Libav and FFmpeg.
consistency: ffaac -> av_aac (like ca_aac, fdk_aac and so on)

VP3 (Theora) -> Theora: Theora is based on VP3, but is not exactly VP3.

manicure updated to handle the new names, but built-in presets left untouched (this will require WinGUI updates).

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5586 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/common.c
scripts/manicure.rb

index 2a090e638ac168dc08849852f0fac473ae86cc92..b462d71b457aad4ec32a27ac535148bc44bd4332 100644 (file)
@@ -153,10 +153,10 @@ hb_mixdown_t *hb_audio_mixdowns_first_item = NULL;
 hb_mixdown_t *hb_audio_mixdowns_last_item  = NULL;
 hb_mixdown_internal_t hb_audio_mixdowns[]  =
 {
-    // legacy mixdowns (disabled)
-    { { "AC3 Passthru",       "ac3pass",    HB_AMIXDOWN_NONE,      }, NULL, 0, },
-    { { "DTS Passthru",       "dtspass",    HB_AMIXDOWN_NONE,      }, NULL, 0, },
-    { { "DTS-HD Passthru",    "dtshdpass",  HB_AMIXDOWN_NONE,      }, NULL, 0, },
+    // legacy mixdowns, back to HB 0.9.4 whenever possible (disabled)
+    { { "AC3 Passthru",       "",           HB_AMIXDOWN_NONE,      }, NULL, 0, },
+    { { "DTS Passthru",       "",           HB_AMIXDOWN_NONE,      }, NULL, 0, },
+    { { "DTS-HD Passthru",    "",           HB_AMIXDOWN_NONE,      }, NULL, 0, },
     { { "6-channel discrete", "6ch",        HB_AMIXDOWN_5POINT1,   }, NULL, 0, },
     // actual mixdowns
     { { "None",               "none",       HB_AMIXDOWN_NONE,      }, NULL, 1, },
@@ -184,21 +184,16 @@ hb_encoder_t *hb_video_encoders_first_item = NULL;
 hb_encoder_t *hb_video_encoders_last_item  = NULL;
 hb_encoder_internal_t hb_video_encoders[]  =
 {
-    // legacy encoders, all the way back to HB 0.7.1 (disabled)
-    { { "x264 (Main profile)", "",      HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "x264 (Baseline profile)", "",  HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "x264 (h.264 Main)", "",        HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "x264 (h.264 iPod)", "",        HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "",                  "x264b13", HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "",                  "x264b30", HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_H264,   },
-    { { "XviD",              "xvid",    HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_MPEG4,  },
-    { { "MPEG-4 (XviD)",     "",        HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_MPEG4,  },
+    // legacy encoders, back to HB 0.9.4 whenever possible (disabled)
     { { "FFmpeg",            "ffmpeg",  HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_MPEG4,  },
+    { { "MPEG-4 (FFmpeg)",   "ffmpeg4", HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_MPEG4,  },
+    { { "MPEG-2 (FFmpeg)",   "ffmpeg2", HB_VCODEC_FFMPEG_MPEG2, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_MPEG2,  },
+    { { "VP3 (Theora)",    "libtheora", HB_VCODEC_THEORA,                       HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_VCODEC_THEORA, },
     // actual encoders
     { { "H.264 (x264)",      "x264",    HB_VCODEC_X264,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_H264,   },
-    { { "MPEG-4 (FFmpeg)",   "ffmpeg4", HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG4,  },
-    { { "MPEG-2 (FFmpeg)",   "ffmpeg2", HB_VCODEC_FFMPEG_MPEG2, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG2,  },
-    { { "VP3 (Theora)",      "theora",  HB_VCODEC_THEORA,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_THEORA, },
+    { { "MPEG-4",            "mpeg4",   HB_VCODEC_FFMPEG_MPEG4, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG4,  },
+    { { "MPEG-2",            "mpeg2",   HB_VCODEC_FFMPEG_MPEG2, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_MPEG2,  },
+    { { "Theora",            "theora",  HB_VCODEC_THEORA,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_VCODEC_THEORA, },
 };
 int hb_video_encoders_count = sizeof(hb_video_encoders) / sizeof(hb_video_encoders[0]);
 static int hb_video_encoder_is_enabled(int encoder)
@@ -221,28 +216,31 @@ hb_encoder_t *hb_audio_encoders_first_item = NULL;
 hb_encoder_t *hb_audio_encoders_last_item  = NULL;
 hb_encoder_internal_t hb_audio_encoders[]  =
 {
-    // legacy encoders (disabled)
-    { { "AC3",                "ac3",        HB_ACODEC_AC3,          HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AC3,        },
-    { { "AC3 (pass-thru)",    "ac3pass",    HB_ACODEC_AC3_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AC3_PASS,   },
-    { { "DTS (pass-thru)",    "dtspass",    HB_ACODEC_DCA_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_DTS_PASS,   },
+    // legacy encoders, back to HB 0.9.4 whenever possible (disabled)
     { { "",                   "dts",        HB_ACODEC_DCA_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_DTS_PASS,   },
+    { { "AAC (ffmpeg)",       "ffaac",      HB_ACODEC_FFAAC,        HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AAC,        },
+    { { "AC3 (ffmpeg)",       "ffac3",      HB_ACODEC_AC3,          HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AC3,        },
+    { { "MP3 (lame)",         "lame",       HB_ACODEC_LAME,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_MP3,        },
+    { { "Vorbis (vorbis)",    "libvorbis",  HB_ACODEC_VORBIS,                       HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_VORBIS,     },
+    { { "FLAC (ffmpeg)",      "ffflac",     HB_ACODEC_FFFLAC,                       HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_FLAC,       },
+    { { "FLAC (24-bit)",      "ffflac24",   HB_ACODEC_FFFLAC24,                     HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_FLAC,       },
     // actual encoders
     { { "AAC (CoreAudio)",    "ca_aac",     HB_ACODEC_CA_AAC,       HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC,        },
     { { "HE-AAC (CoreAudio)", "ca_haac",    HB_ACODEC_CA_HAAC,      HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC_HE,     },
     { { "AAC (faac)",         "faac",       HB_ACODEC_FAAC,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC,        },
-    { { "AAC (ffmpeg)",       "ffaac",      HB_ACODEC_FFAAC,        HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC,        },
+    { { "AAC (avcodec)",      "av_aac",     HB_ACODEC_FFAAC,        HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC,        },
     { { "AAC (FDK)",          "fdk_aac",    HB_ACODEC_FDK_AAC,      HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC,        },
     { { "HE-AAC (FDK)",       "fdk_haac",   HB_ACODEC_FDK_HAAC,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC_HE,     },
     { { "AAC Passthru",       "copy:aac",   HB_ACODEC_AAC_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AAC_PASS,   },
-    { { "AC3 (ffmpeg)",       "ffac3",      HB_ACODEC_AC3,          HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AC3,        },
+    { { "AC3",                "ac3",        HB_ACODEC_AC3,          HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AC3,        },
     { { "AC3 Passthru",       "copy:ac3",   HB_ACODEC_AC3_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AC3_PASS,   },
     { { "DTS Passthru",       "copy:dts",   HB_ACODEC_DCA_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_DTS_PASS,   },
     { { "DTS-HD Passthru",    "copy:dtshd", HB_ACODEC_DCA_HD_PASS,  HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_DTSHD_PASS, },
-    { { "MP3 (lame)",         "lame",       HB_ACODEC_LAME,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_MP3,        },
+    { { "MP3",                "mp3",        HB_ACODEC_LAME,         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_MP3,        },
     { { "MP3 Passthru",       "copy:mp3",   HB_ACODEC_MP3_PASS,     HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_MP3_PASS,   },
-    { { "Vorbis (vorbis)",    "vorbis",     HB_ACODEC_VORBIS,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_VORBIS,     },
-    { { "FLAC (ffmpeg)",      "ffflac",     HB_ACODEC_FFFLAC,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_FLAC,       },
-    { { "FLAC (24-bit)",      "ffflac24",   HB_ACODEC_FFFLAC24,                     HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_FLAC,       },
+    { { "Vorbis",             "vorbis",     HB_ACODEC_VORBIS,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_VORBIS,     },
+    { { "FLAC 16-bit",        "flac16",     HB_ACODEC_FFFLAC,                       HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_FLAC,       },
+    { { "FLAC 24-bit",        "flac24",     HB_ACODEC_FFFLAC24,                     HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_FLAC,       },
     { { "Auto Passthru",      "copy",       HB_ACODEC_AUTO_PASS,    HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, HB_GID_ACODEC_AUTO_PASS,  },
 };
 int hb_audio_encoders_count = sizeof(hb_audio_encoders) / sizeof(hb_audio_encoders[0]);
@@ -301,11 +299,9 @@ hb_container_t *hb_containers_first_item = NULL;
 hb_container_t *hb_containers_last_item  = NULL;
 hb_container_internal_t hb_containers[]  =
 {
-    // legacy muxers (disabled)
-    { { "AVI file",          "avi",    "avi",             0, }, NULL, 0, HB_GID_MUX_MP4, },
+    // legacy muxers, back to HB 0.9.4 whenever possible (disabled)
     { { "M4V file",          "m4v",    "m4v",             0, }, NULL, 0, HB_GID_MUX_MP4, },
     { { "MP4 file",          "mp4",    "mp4",             0, }, NULL, 0, HB_GID_MUX_MP4, },
-    { { "OGM file",          "ogm",    "ogm",             0, }, NULL, 0, HB_GID_MUX_MKV, },
     { { "MKV file",          "mkv",    "mkv",             0, }, NULL, 0, HB_GID_MUX_MKV, },
     // actual muxers
     { { "MPEG-4 (mp4v2)",    "mp4v2",  "mp4", HB_MUX_MP4V2,  }, NULL, 1, HB_GID_MUX_MP4, },
index b8be37432923da933f9170ed173860db26c7a77e..83b991dd92c38b27d7d73ac39a501dfdabcd2d0b 100755 (executable)
@@ -280,16 +280,16 @@ class Display
     end
     
     #Video encoder
-    if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)"
-      commandString << " -e "
-      case hash["VideoEncoder"]
-      when /x264/
-        commandString << "x264"
-      when /Theora/
-        commandString << "theora"
-      when /MPEG/
-        commandString << "ffmpeg2"
-      end
+    commandString << " -e "
+    case hash["VideoEncoder"]
+    when /x264/
+      commandString << "x264"
+    when /Theora/
+      commandString << "theora"
+    when /MPEG-4/
+      commandString << "ffmpeg4"
+    when /MPEG-2/
+      commandString << "ffmpeg2"
     end
 
     #VideoRateControl
@@ -342,23 +342,23 @@ class Display
         when /AC3 Pass/
           audioEncoders << "copy:ac3"
         when /AC3/
-          audioEncoders << "ffac3"
+          audioEncoders << "ac3"
         when /DTS Pass/
           audioEncoders << "copy:dts"
         when /DTS-HD Pass/
           audioEncoders << "copy:dtshd"
         when /AAC Pass/
           audioEncoders << "copy:aac"
-        when "AAC (FDK)"
-          audioEncoders << "fdk_aac"
         when "AAC (faac)"
           audioEncoders << "faac"
-        when "AAC (ffmpeg)"
-          audioEncoders << "ffaac"
-        when "AAC (CoreAudio)"
-          audioEncoders << "ca_aac"
+        when "AAC (ffmpeg)", "AAC (avcodec)"
+          audioEncoders << "av_aac"
+        when "AAC (FDK)"
+          audioEncoders << "fdk_aac"
         when "HE-AAC (FDK)"
           audioEncoders << "fdk_haac"
+        when "AAC (CoreAudio)"
+          audioEncoders << "ca_aac"
         when "HE-AAC (CoreAudio)"
           audioEncoders << "ca_haac"
         when /Vorbis/
@@ -366,11 +366,11 @@ class Display
         when /MP3 Pass/
           audioEncoders << "copy:mp3"
         when /MP3/
-          audioEncoders << "lame"
-        when "FLAC (ffmpeg)"
-          audioEncoders << "ffflac"
-        when "FLAC (24-bit)"
-          audioEncoders << "ffflac24"
+          audioEncoders << "mp3"
+        when "FLAC (ffmpeg)", "FLAC 16-bit"
+          audioEncoders << "flac16"
+        when "FLAC (24-bit)", "FLAC 24-bit"
+          audioEncoders << "flac24"
         when /Auto Pass/
           audioEncoders << "copy"
       end
@@ -467,17 +467,27 @@ class Display
     
     case hash["AudioEncoderFallback"]
       when /AC3/
-        audioEncoderFallback << "ffac3"
-      when "AAC (ffmpeg)"
-        audioEncoderFallback << "ffaac"
-      when /AAC/
+        audioEncoderFallback << "ac3"
+      when "AAC (faac)"
         audioEncoderFallback << "faac"
+      when "AAC (ffmpeg)", "AAC (avcodec)"
+        audioEncoderFallback << "av_aac"
+      when "AAC (FDK)"
+        audioEncoderFallback << "fdk_aac"
+      when "HE-AAC (FDK)"
+        audioEncoderFallback << "fdk_haac"
+      when "AAC (CoreAudio)"
+        audioEncoderFallback << "ca_aac"
+      when "HE-AAC (CoreAudio)"
+        audioEncoderFallback << "ca_haac"
       when /Vorbis/
         audioEncoderFallback << "vorbis"
       when /MP3/
-        audioEncoderFallback << "lame"
-      when /FLAC/
-        audioEncoderFallback << "ffflac"
+        audioEncoderFallback << "mp3"
+      when "FLAC (ffmpeg)", "FLAC 16-bit"
+        audioEncoderFallback << "flac16"
+      when "FLAC (24-bit)", "FLAC 24-bit"
+        audioEncoderFallback << "flac24"
     end
     
     if audioEncoderFallback.size > 0
@@ -678,16 +688,16 @@ class Display
     commandString << '+ ' << hash["PresetName"] << ":"
         
     #Video encoder
-    if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)"
-      commandString << " -e "
-      case hash["VideoEncoder"]
-      when /x264/
-        commandString << "x264"
-      when /Theora/
-        commandString << "theora"
-      when /MPEG/
-        commandString << "ffmpeg2"
-      end
+    commandString << " -e "
+    case hash["VideoEncoder"]
+    when /x264/
+      commandString << "x264"
+    when /Theora/
+      commandString << "theora"
+    when /MPEG-4/
+      commandString << "ffmpeg4"
+    when /MPEG-2/
+      commandString << "ffmpeg2"
     end
 
     #VideoRateControl
@@ -740,23 +750,23 @@ class Display
         when /AC3 Pass/
           audioEncoders << "copy:ac3"
         when /AC3/
-          audioEncoders << "ffac3"
+          audioEncoders << "ac3"
         when /DTS Pass/
           audioEncoders << "copy:dts"
         when /DTS-HD Pass/
           audioEncoders << "copy:dtshd"
         when /AAC Pass/
           audioEncoders << "copy:aac"
-        when "AAC (FDK)"
-          audioEncoders << "fdk_aac"
         when "AAC (faac)"
           audioEncoders << "faac"
-        when "AAC (ffmpeg)"
-          audioEncoders << "ffaac"
-        when "AAC (CoreAudio)"
-          audioEncoders << "ca_aac"
+        when "AAC (ffmpeg)", "AAC (avcodec)"
+          audioEncoders << "av_aac"
+        when "AAC (FDK)"
+          audioEncoders << "fdk_aac"
         when "HE-AAC (FDK)"
           audioEncoders << "fdk_haac"
+        when "AAC (CoreAudio)"
+          audioEncoders << "ca_aac"
         when "HE-AAC (CoreAudio)"
           audioEncoders << "ca_haac"
         when /Vorbis/
@@ -764,11 +774,11 @@ class Display
         when /MP3 Pass/
           audioEncoders << "copy:mp3"
         when /MP3/
-          audioEncoders << "lame"
-        when "FLAC (ffmpeg)"
-          audioEncoders << "ffflac"
-        when "FLAC (24-bit)"
-          audioEncoders << "ffflac24"
+          audioEncoders << "mp3"
+        when "FLAC (ffmpeg)", "FLAC 16-bit"
+          audioEncoders << "flac16"
+        when "FLAC (24-bit)", "FLAC 24-bit"
+          audioEncoders << "flac24"
         when /Auto Pass/
           audioEncoders << "copy"
       end
@@ -865,17 +875,27 @@ class Display
     
     case hash["AudioEncoderFallback"]
       when /AC3/
-        audioEncoderFallback << "ffac3"
-      when "AAC (ffmpeg)"
-        audioEncoderFallback << "ffaac"
-      when /AAC/
+        audioEncoderFallback << "ac3"
+      when "AAC (faac)"
         audioEncoderFallback << "faac"
+      when "AAC (ffmpeg)", "AAC (avcodec)"
+        audioEncoderFallback << "av_aac"
+      when "AAC (FDK)"
+        audioEncoderFallback << "fdk_aac"
+      when "HE-AAC (FDK)"
+        audioEncoderFallback << "fdk_haac"
+      when "AAC (CoreAudio)"
+        audioEncoderFallback << "ca_aac"
+      when "HE-AAC (CoreAudio)"
+        audioEncoderFallback << "ca_haac"
       when /Vorbis/
         audioEncoderFallback << "vorbis"
       when /MP3/
-        audioEncoderFallback << "lame"
-      when /FLAC/
-        audioEncoderFallback << "ffflac"
+        audioEncoderFallback << "mp3"
+      when "FLAC (ffmpeg)", "FLAC 16-bit"
+        audioEncoderFallback << "flac16"
+      when "FLAC (24-bit)", "FLAC 24-bit"
+        audioEncoderFallback << "flac24"
     end
     
     if audioEncoderFallback.size > 0
@@ -1080,16 +1100,16 @@ class Display
     end
     
     #Video encoder
-    if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)"
-      commandString << "vcodec = "
-      case hash["VideoEncoder"]
-      when /x264/
-        commandString << "HB_VCODEC_X264;\n    "
-      when /Theora/
-        commandString << "HB_VCODEC_THEORA;\n    "        
-      when /MPEG/
-        commandString << "HB_VCODEC_FFMPEG_MPEG2;\n    "
-      end
+    commandString << "vcodec = "
+    case hash["VideoEncoder"]
+    when /x264/
+      commandString << "HB_VCODEC_X264;\n    "
+    when /Theora/
+      commandString << "HB_VCODEC_THEORA;\n    "
+    when /MPEG-4/
+      commandString << "HB_VCODEC_FFMPEG_MPEG4;\n    "
+    when /MPEG-2/
+      commandString << "HB_VCODEC_FFMPEG_MPEG2;\n    "
     end
 
     #VideoRateControl
@@ -1144,23 +1164,23 @@ class Display
         when /AC3 Pass/
           audioEncoders << "copy:ac3"
         when /AC3/
-          audioEncoders << "ffac3"
+          audioEncoders << "ac3"
         when /DTS Pass/
           audioEncoders << "copy:dts"
         when /DTS-HD Pass/
           audioEncoders << "copy:dtshd"
         when /AAC Pass/
           audioEncoders << "copy:aac"
-        when "AAC (FDK)"
-          audioEncoders << "fdk_aac"
         when "AAC (faac)"
           audioEncoders << "faac"
-        when "AAC (ffmpeg)"
-          audioEncoders << "ffaac"
-        when "AAC (CoreAudio)"
-          audioEncoders << "ca_aac"
+        when "AAC (ffmpeg)", "AAC (avcodec)"
+          audioEncoders << "av_aac"
+        when "AAC (FDK)"
+          audioEncoders << "fdk_aac"
         when "HE-AAC (FDK)"
           audioEncoders << "fdk_haac"
+        when "AAC (CoreAudio)"
+          audioEncoders << "ca_aac"
         when "HE-AAC (CoreAudio)"
           audioEncoders << "ca_haac"
         when /Vorbis/
@@ -1168,11 +1188,11 @@ class Display
         when /MP3 Pass/
           audioEncoders << "copy:mp3"
         when /MP3/
-          audioEncoders << "lame"
-        when "FLAC (ffmpeg)"
-          audioEncoders << "ffflac"
-        when "FLAC (24-bit)"
-          audioEncoders << "ffflac24"
+          audioEncoders << "mp3"
+        when "FLAC (ffmpeg)", "FLAC 16-bit"
+          audioEncoders << "flac16"
+        when "FLAC (24-bit)", "FLAC 24-bit"
+          audioEncoders << "flac24"
         when /Auto Pass/
           audioEncoders << "copy"
       end
@@ -1287,27 +1307,27 @@ class Display
     
     case hash["AudioEncoderFallback"]
       when /AC3/
-        audioEncoderFallback << "ffac3"
-      when "AAC (FDK)"
-        audioEncoderFallback << "fdk_aac"
+        audioEncoderFallback << "ac3"
       when "AAC (faac)"
         audioEncoderFallback << "faac"
-      when "AAC (ffmpeg)"
-        audioEncoderFallback << "ffaac"
-      when "AAC (CoreAudio)"
-        audioEncoderFallback << "ca_aac"
+      when "AAC (ffmpeg)", "AAC (avcodec)"
+        audioEncoderFallback << "av_aac"
+      when "AAC (FDK)"
+        audioEncoderFallback << "fdk_aac"
       when "HE-AAC (FDK)"
         audioEncoderFallback << "fdk_haac"
+      when "AAC (CoreAudio)"
+        audioEncoderFallback << "ca_aac"
       when "HE-AAC (CoreAudio)"
         audioEncoderFallback << "ca_haac"
       when /Vorbis/
         audioEncoderFallback << "vorbis"
       when /MP3/
-        audioEncoderFallback << "lame"
-      when "FLAC (ffmpeg)"
-        audioEncoderFallback << "ffflac"
-      when "FLAC (24-bit)"
-        audioEncoderFallback << "ffflac24"
+        audioEncoderFallback << "mp3"
+      when "FLAC (ffmpeg)", "FLAC 16-bit"
+        audioEncoderFallback << "flac16"
+      when "FLAC (24-bit)", "FLAC 24-bit"
+        audioEncoderFallback << "flac24"
     end
     
     if audioEncoderFallback.size > 0
@@ -1538,16 +1558,16 @@ class Display
     commandString << "+ " << hash["PresetName"] << ": "
         
     #Video encoder
-    if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)"
-      commandString << " -e "
-      case hash["VideoEncoder"]
-      when /x264/
-        commandString << "x264 "
-      when /Theora/
-        commandString << "theora "
-      when /MPEG/
-        commandString << "ffmpeg2 "
-      end
+    commandString << " -e "
+    case hash["VideoEncoder"]
+    when /x264/
+      commandString << "x264 "
+    when /Theora/
+      commandString << "theora "
+    when /MPEG-4/
+      commandString << "ffmpeg4 "
+    when /MPEG-2/
+      commandString << "ffmpeg2 "
     end
 
     #VideoRateControl
@@ -1600,23 +1620,23 @@ class Display
         when /AC3 Pass/
           audioEncoders << "copy:ac3"
         when /AC3/
-          audioEncoders << "ffac3"
+          audioEncoders << "ac3"
         when /DTS Pass/
           audioEncoders << "copy:dts"
         when /DTS-HD Pass/
           audioEncoders << "copy:dtshd"
         when /AAC Pass/
           audioEncoders << "copy:aac"
-        when "AAC (FDK)"
-          audioEncoders << "fdk_aac"
         when "AAC (faac)"
           audioEncoders << "faac"
-        when "AAC (ffmpeg)"
-          audioEncoders << "ffaac"
-        when "AAC (CoreAudio)"
-          audioEncoders << "ca_aac"
+        when "AAC (ffmpeg)", "AAC (avcodec)"
+          audioEncoders << "av_aac"
+        when "AAC (FDK)"
+          audioEncoders << "fdk_aac"
         when "HE-AAC (FDK)"
           audioEncoders << "fdk_haac"
+        when "AAC (CoreAudio)"
+          audioEncoders << "ca_aac"
         when "HE-AAC (CoreAudio)"
           audioEncoders << "ca_haac"
         when /Vorbis/
@@ -1624,11 +1644,11 @@ class Display
         when /MP3 Pass/
           audioEncoders << "copy:mp3"
         when /MP3/
-          audioEncoders << "lame"
-        when "FLAC (ffmpeg)"
-          audioEncoders << "ffflac"
-        when "FLAC (24-bit)"
-          audioEncoders << "ffflac24"
+          audioEncoders << "mp3"
+        when "FLAC (ffmpeg)", "FLAC 16-bit"
+          audioEncoders << "flac16"
+        when "FLAC (24-bit)", "FLAC 24-bit"
+          audioEncoders << "flac24"
         when /Auto Pass/
           audioEncoders << "copy"
       end
@@ -1725,17 +1745,27 @@ class Display
     
     case hash["AudioEncoderFallback"]
       when /AC3/
-        audioEncoderFallback << "ffac3"
-      when "AAC (ffmpeg)"
-        audioEncoderFallback << "ffaac"
-      when /AAC/
+        audioEncoderFallback << "ac3"
+      when "AAC (faac)"
         audioEncoderFallback << "faac"
+      when "AAC (ffmpeg)", "AAC (avcodec)"
+        audioEncoderFallback << "av_aac"
+      when "AAC (FDK)"
+        audioEncoderFallback << "fdk_aac"
+      when "HE-AAC (FDK)"
+        audioEncoderFallback << "fdk_haac"
+      when "AAC (CoreAudio)"
+        audioEncoderFallback << "ca_aac"
+      when "HE-AAC (CoreAudio)"
+        audioEncoderFallback << "ca_haac"
       when /Vorbis/
         audioEncoderFallback << "vorbis"
       when /MP3/
-        audioEncoderFallback << "lame"
-      when /FLAC/
-        audioEncoderFallback << "ffflac"
+        audioEncoderFallback << "mp3"
+      when "FLAC (ffmpeg)", "FLAC 16-bit"
+        audioEncoderFallback << "flac16"
+      when "FLAC (24-bit)", "FLAC 24-bit"
+        audioEncoderFallback << "flac24"
     end
     
     if audioEncoderFallback.size > 0