private static void Getx265Line(FileConfig fileConfig, int pass, out string x264Line, out string outputpath) { VedioConfig vedioConfig = fileConfig.VedioConfig; x264Line = x265Args; x264Line = x264Line.Replace("$preset$", vedioConfig.preset); if (string.IsNullOrEmpty(vedioConfig.tune)) { x264Line = x264Line.Replace("$tune$", ""); } else { x264Line = x264Line.Replace("$tune$", "--tune " + vedioConfig.tune); } if (vedioConfig.BitType == EncoderBitrateType.crf) { x264Line = x264Line.Replace("$crf$", "--crf " + vedioConfig.crf.ToString()); } else { string twopassstr = "--pass " + pass + " --bitrate " + vedioConfig.bitrate.ToString(); x264ArgsManager manager = new x264ArgsManager(x264Line); x264Line = x264Line.Replace("$crf$", twopassstr); } x264Line = x264Line.Replace("$profile$", ""); outputpath = string.Empty; string fileExtension = "." + fileConfig.Muxer; string inputArg = ""; if (fileConfig.AudioConfig.CopyStream || !fileConfig.AudioConfig.Enabled) { outputpath = fileConfig.OutputFile + fileExtension; } else {//临时目录 outputpath = FileUtility.RandomName(Config.Temp) + ".h265"; } if (fileConfig.InputType == InputType.AvisynthScriptFile) { x264Line = x264Line.Replace("$input$", fileConfig.AvsFileFullName.Maohao()); } else if (fileConfig.InputType == InputType.AvisynthScript || fileConfig.InputType == InputType.VapoursynthScriptFile) { x264Line = x264Line.Replace("$input$", ""); } else { if (fileConfig.UseBat) { x264Line = x264Line.Replace("$input$", ""); inputArg = " --input - --y4m "; } else { x264Line = x264Line.Replace("$input$", "--input " + fileConfig.VedioFileFullName.Maohao()); } } x264Line = x264Line.Replace("$outputfile$", FileUtility.GetNoSameNameFile(outputpath)); if (fileConfig.UseBat) { x264Line = x264Line.Replace("$userargs$", vedioConfig.UserArgs + inputArg); } else { x264Line = x264Line.Replace("$userargs$", vedioConfig.UserArgs); } }
private static void Getx265Line(FileConfig fileConfig, int pass, out string x265Line, out string outputpath) { VedioConfig vedioConfig = fileConfig.VedioConfig; x265Line = x265Args; x265Line = x265Line.Replace("$preset$", vedioConfig.preset); if (string.IsNullOrEmpty(vedioConfig.tune)) { x265Line = x265Line.Replace("$tune$", ""); } else { x265Line = x265Line.Replace("$tune$", "--tune " + vedioConfig.tune); } if (vedioConfig.BitType == EncoderBitrateType.crf) { x265Line = x265Line.Replace("$crf$", "--crf " + vedioConfig.crf.ToString()); } else { string twopassstr = "--pass " + pass + " --bitrate " + vedioConfig.bitrate.ToString(); x264ArgsManager manager = new x264ArgsManager(x265Line); x265Line = x265Line.Replace("$crf$", twopassstr); } x265Line = x265Line.Replace("$profile$", ""); outputpath = string.Empty; string fileExtension = "." + fileConfig.Muxer; string inputArg = ""; //if (fileConfig.AudioConfig.CopyStream || !fileConfig.AudioConfig.Enabled) //{ // outputpath = fileConfig.OutputFile + fileExtension; //} //else //{//临时目录 outputpath = FileUtility.AppendRandomName(Config.Temp, Path.GetFileNameWithoutExtension(fileConfig.VedioFileFullName) + ".h265"); //} if (fileConfig.InputType == InputType.AvisynthScriptFile) { x265Line = x265Line.Replace("$input$", fileConfig.AvsFileFullName.Maohao()); } else if (fileConfig.InputType == InputType.AvisynthScript || fileConfig.InputType == InputType.VapoursynthScriptFile) { x265Line = x265Line.Replace("$input$", ""); } else { if (fileConfig.VedioConfig.decoderMode == DecoderMode.pipe) { x265Line = x265Line.Replace("$input$", ""); inputArg = " --input - --y4m "; } else { x265Line = x265Line.Replace("$input$", "--input " + fileConfig.VedioFileFullName.Maohao()); } } x265Line = x265Line.Replace("$outputfile$", outputpath); if (fileConfig.VedioConfig.decoderMode == "pipe") { x265Line = x265Line.Replace("$userargs$", vedioConfig.UserArgs + inputArg); } else { x265Line = x265Line.Replace("$userargs$", vedioConfig.UserArgs); } if (vedioConfig.Is_x265_GHFLY_MOD && vedioConfig.depth != 10) { x265Line = $"-D {vedioConfig.depth} {x265Line}"; } }