public string[] ToStringArray() { List <string> parameters = new List <string>(); if (!string.IsNullOrEmpty(InputFile)) { parameters.Add("-i"); parameters.Add(InputFile); } if (VerbosityLevel >= 0) { parameters.Add("-v"); parameters.Add(VerbosityLevel.ToString()); } if (SecondsToSkip > 0) { TimeSpan skipDuration = TimeSpan.FromSeconds(SecondsToSkip); parameters.Add("-ss"); parameters.Add(string.Format("{0:hh\\:mm\\:ss\\.fff}", skipDuration)); } if (!string.IsNullOrEmpty(EarlyExtendedOptions)) { parameters.AddRange(EarlyExtendedOptions.Split(' ')); } if (!string.IsNullOrEmpty(OutputFormat)) { parameters.Add("-f"); parameters.Add(OutputFormat); } if (ExcludeVideo) { parameters.Add("-vn"); } else { if (!string.IsNullOrEmpty(VideoCodec)) { parameters.Add("-vcodec"); parameters.Add(VideoCodec); } if (VideoFramerate > 0) { parameters.Add("-r"); parameters.Add(VideoFramerate.ToString("F")); } if (!string.IsNullOrEmpty(VideoBitrate)) { parameters.Add("-b"); parameters.Add(VideoBitrate); } if (VideoQualityControl > 0) { parameters.Add("-crf"); parameters.Add(VideoQualityControl.ToString()); } if (!string.IsNullOrEmpty(VideoPreset)) { parameters.Add("-vpre"); parameters.Add(string.Format("{0}", VideoPreset)); } if ((VideoWidth != -1 || VideoHeight != -1) && (VideoWidth != 0 || VideoHeight != 0)) { parameters.Add("-vf"); parameters.Add(string.Format("scale={0}:{1}", VideoWidth, VideoHeight)); } } if (ExcludeAudio) { parameters.Add("-an"); } else { if (!string.IsNullOrEmpty(AudioCodec)) { parameters.Add("-acodec"); parameters.Add(AudioCodec); } if (AudioSampleRate > 0) { parameters.Add("-ar"); parameters.Add(AudioSampleRate.ToString()); } if (!string.IsNullOrEmpty(AudioBitrate)) { parameters.Add("-ab"); parameters.Add(AudioBitrate); } if (AudioChannels > 0) { parameters.Add("-ac"); parameters.Add(AudioChannels.ToString()); } } if (!string.IsNullOrEmpty(LateExtendedOptions)) { parameters.AddRange(LateExtendedOptions.Split(' ')); } if (VideoStreamIndex != -1) { parameters.Add("-map"); parameters.Add(string.Format("0:{0}", VideoStreamIndex)); } if (AudioStreamIndex != -1) { parameters.Add("-map"); parameters.Add(string.Format("0:{0}", AudioStreamIndex)); } if (!string.IsNullOrEmpty(OutputFile)) { parameters.Add(string.Format("\"{0}\"", OutputFile)); } return(parameters.ToArray()); }