예제 #1
0
        public static void Execute(string inputFile, string outputFile, IProgress <double> progress, Action <FFmpegArgumentsBuilder> argsConfigurator)
        {
            if (argsConfigurator == null)
            {
                throw new ArgumentNullException(nameof(argsConfigurator));
            }

            var _argsBuilder = new FFmpegArgumentsBuilder();

            argsConfigurator.Invoke(_argsBuilder);

            Execute(inputFile, outputFile, progress, _argsBuilder);
        }
예제 #2
0
 public static void Execute(string inputFile, string outputFile, FFmpegArgumentsBuilder argsConfigurator)
 {
     Execute(inputFile, outputFile, null, argsConfigurator);
 }
예제 #3
0
        public static void Execute(string inputFile, string outputFile, IProgress <double> progress, FFmpegArgumentsBuilder argsConfigurator)
        {
            if (argsConfigurator == null)
            {
                throw new ArgumentNullException(nameof(argsConfigurator));
            }

            if (File.Exists(outputFile))
            {
                if (!argsConfigurator.ContainsParameter("y") || argsConfigurator.ContainsParameter("n"))
                {
                    Console.WriteLine($"Выходной файл '{outputFile}' существует. Выход.");
                    return;
                }
            }

            if (progress != null)
            {
                argsConfigurator.Progress(FFmpegProgressUrls.StdOut);
            }

            var args = argsConfigurator.Build(inputFile, outputFile);

            Execute(args, progress);
        }