using System.Collections.Generic; namespace Vinno.IUS.Common.Media.FFmpeg.ArgsBuilder { class FFmpegArgsBuilder { private readonly List _inputs = new List(); private readonly List _outputs = new List(); public FFmpegInputArgs AddInputFile(string fileName) { var input = new FFmpegInputArgs($"\"{fileName}\""); _inputs.Add(input); return input; } public FFmpegInputArgs AddStdIn() { var input = new FFmpegInputArgs("-"); _inputs.Add(input); return input; } public FFmpegOutputArgs AddOutputFile(string fileName) { var output = new FFmpegOutputArgs($"\"{fileName}\""); _outputs.Add(output); return output; } public FFmpegOutputArgs AddStdOut() { var output = new FFmpegOutputArgs("-"); _outputs.Add(output); return output; } public string GetArgs() { var args = new List(); foreach (var input in _inputs) { args.Add(input.GetArgs()); } foreach (var output in _outputs) { args.Add(output.GetArgs()); } return string.Join(" ", args); } } }