X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=scripts%2Fmanicure.rb;h=32ea30e50d9201f316c34f8a0bd465b4254b945a;hb=b4464b6d962bb939a8f38b4d50057c441ab48111;hp=3e9467e100423aff666697fbe2954e550cca2fe8;hpb=0b112e7b2d0becd086d730411f5e21f6d832b2c1;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/scripts/manicure.rb b/scripts/manicure.rb index 3e9467e1..32ea30e5 100755 --- a/scripts/manicure.rb +++ b/scripts/manicure.rb @@ -310,173 +310,82 @@ class Display commandString << " -r " << "23.976" elsif hash["VideoFramerate"] == "29.97 (NTSC Video)" commandString << " -r " << "29.97" + elsif hash["VideoFramerate"] == "25 (PAL Film/Video)" + commandString << " -r " << "25" else commandString << " -r " << hash["VideoFramerate"] end end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3 / - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end - + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs + #Container commandString << " -f " case hash["FileFormat"] @@ -524,8 +433,12 @@ class Display #Subtitles if hash["Subtitles"] != "None" - commandString << " -s " - commandString << hash["Subtitles"] + if hash["Subtitles"] == "Autoselect" + commandString << " --subtitle-scan" + else + commandString << " -s " + commandString << hash["Subtitles"] + end end #Video Filters @@ -560,9 +473,9 @@ class Display #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" end #Booleans @@ -643,173 +556,81 @@ class Display commandString << " -r " << "23.976" elsif hash["VideoFramerate"] == "29.97 (NTSC Video)" commandString << " -r " << "29.97" + elsif hash["VideoFramerate"] == "25 (PAL Film/Video)" + commandString << " -r " << "25" else commandString << " -r " << hash["VideoFramerate"] end end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end - - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end - + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs #Container commandString << " -f " @@ -858,8 +679,12 @@ class Display #Subtitles if hash["Subtitles"] != "None" - commandString << " -s " - commandString << hash["Subtitles"] + if hash["Subtitles"] == "Autoselect" + commandString << " --subtitle-scan" + else + commandString << " -s " + commandString << hash["Subtitles"] + end end #Video Filters @@ -893,9 +718,9 @@ class Display #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" end #Booleans @@ -923,16 +748,20 @@ class Display commandString = "if (!strcmp(preset_name, \"" << hash["PresetName"] << "\"))\n{\n " #Filename suffix + commandString << "if( !mux )\n " + commandString << "{\n " + case hash["FileFormat"] when /MP4/ - commandString << "mux = " << "HB_MUX_MP4;\n " + commandString << " mux = " << "HB_MUX_MP4;\n " when /AVI/ - commandString << "mux = " << "HB_MUX_AVI;\n " + commandString << " mux = " << "HB_MUX_AVI;\n " when /OGM/ - commandString << "mux = " << "HB_MUX_OGM;\n " + commandString << " mux = " << "HB_MUX_OGM;\n " when /MKV/ - commandString << "mux = " << "HB_MUX_MKV;\n " + commandString << " mux = " << "HB_MUX_MKV;\n " end + commandString << "}\n " #iPod MP4 atom if hash["Mp4iPodCompatible"].to_i == 1 @@ -972,178 +801,110 @@ class Display commandString << "job->vrate_base = " << "1126125;\n " elsif hash["VideoFramerate"] == "29.97 (NTSC Video)" commandString << "job->vrate_base = " << "900900;\n " + elsif hash["VideoFramerate"] == "25 (PAL Film/Video)" + commandString << "job->vrate_base = " << "1080000\n " # Gotta add the rest of the framerates for completion's sake. end commandString << "job->cfr = 1;\n " end #Audio tracks - commandString << "atracks = strdup(\"" - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - commandString << "\");\n " - - # Audio bitrate - commandString << "abitrates = strdup(\"" - if hash["Audio1Encoder"] != "AC3 Passthru" - commandString << hash["Audio1Bitrate"] - else - commandString << "auto" - end - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end - commandString << "\");\n " - - #Audio samplerate - commandString << "arates = strdup(\"" - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - commandString << "\");\n " - - #Audio encoder - commandString << "acodecs = strdup(\"" - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - commandString << "\");\n " - - #Audio mixdowns - commandString << "mixdowns = strdup(\"" - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 + + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end + commandString << "if( !atracks )\n " + commandString << "{\n " + commandString << " atracks = strdup(\"" << audioTracks + commandString << "\");\n " + commandString << "}\n " + + commandString << "if( !acodecs )\n " + commandString << "{\n " + commandString << " acodecs = strdup(\"" << audioEncoders + commandString << "\");\n " + commandString << "}\n " + + commandString << "if( !abitrates )\n " + commandString << "{\n " + commandString << " abitrates = strdup(\"" << audioBitrates + commandString << "\");\n " + commandString << "}\n " + + commandString << "if( !mixdowns )\n " + commandString << "{\n " + commandString << " mixdowns = strdup(\"" << audioMixdowns commandString << "\");\n " + commandString << "}\n " + + commandString << "if( !arates )\n " + commandString << "{\n " + commandString << " arates = strdup(\"" << audioSamplerates + commandString << "\");\n " + commandString << "}\n " + + commandString << "if( !dynamic_range_compression )\n " + commandString << "{\n " + commandString << " dynamic_range_compression = strdup(\"" << audioTrackDRCs + commandString << "\");\n " + commandString << "}\n " #Cropping if hash["PictureAutoCrop"] == 0 @@ -1165,14 +926,21 @@ class Display #Subtitles if hash["Subtitles"] != "None" - commandString << "job->subtitle = " - commandString << ( hash["Subtitles"].to_i - 1).to_s << ";\n " + if hash["Subtitles"] == "Autoselect" + commandString << "subtitle_scan = 1;\n " + else + commandString << "job->subtitle = " + commandString << ( hash["Subtitles"].to_i - 1).to_s << ";\n " + end end #x264 Options if hash["x264Option"] != "" - commandString << "x264opts = strdup(\"" + commandString << "if( !x264opts )\n " + commandString << "{\n " + commandString << " x264opts = strdup(\"" commandString << hash["x264Option"] << "\");\n " + commandString << "}\n " end #Video Filters @@ -1214,9 +982,9 @@ class Display #Anamorphic if hash["PicturePAR"] == 1 - commandString << "pixelratio = 1;\n " + commandString << "anamorphic_mode = 1;\n " elsif hash["PicturePAR"] == 2 - commandString << "pixelratio = 2;\n " + commandString << "anamorphic_mode = 2;\n " end #Booleans @@ -1298,172 +1066,81 @@ class Display commandString << " -r " << "23.976" elsif hash["VideoFramerate"] == "29.97 (NTSC Video)" commandString << " -r " << "29.97" + elsif hash["VideoFramerate"] == "25 (PAL Film/Video)" + commandString << " -r " << "25" else commandString << " -r " << hash["VideoFramerate"] end end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end - - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs #Container commandString << " -f " @@ -1512,8 +1189,12 @@ class Display #Subtitles if hash["Subtitles"] != "None" - commandString << " -s " - commandString << hash["Subtitles"] + if hash["Subtitles"] == "Autoselect" + commandString << " --subtitle-scan" + else + commandString << " -s " + commandString << hash["Subtitles"] + end end #Video Filters @@ -1547,9 +1228,9 @@ class Display #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" end #Booleans