public static async Task ExtractLastFrame(string inputFile, string outputPath, Size size)
        {
            if (QuickSettingsTab.trimEnabled)
            {
                return;
            }

            if (IOUtils.IsPathDirectory(outputPath))
            {
                outputPath = Path.Combine(outputPath, "last.png");
            }

            bool   isPng    = (Path.GetExtension(outputPath).ToLower() == ".png");
            string comprArg = isPng ? compr : "";
            string pixFmt   = "-pix_fmt " + (isPng ? $"rgb24 {comprArg}" : "yuvj420p");
            string sizeStr  = (size.Width > 1 && size.Height > 1) ? $"-s {size.Width}x{size.Height}" : "";
            string trim     = QuickSettingsTab.trimEnabled ? $"-ss {QuickSettingsTab.GetTrimEndMinusOne()} -to {QuickSettingsTab.trimEnd}" : "";
            string sseof    = string.IsNullOrWhiteSpace(trim) ? "-sseof -1" : "";
            string args     = $"{sseof} -i {inputFile.Wrap()} -update 1 {pixFmt} {sizeStr} {trim} {outputPath.Wrap()}";

            await RunFfmpeg(args, LogMode.Hidden, TaskType.ExtractFrames);
        }
Beispiel #2
0
 private void trimBox_TextChanged(object sender, EventArgs e)
 {
     QuickSettingsTab.UpdateTrim(trimStartBox, trimEndBox);
 }