From 712f336acdc6cdb6d45ed22fd772b4c567fb0dca Mon Sep 17 00:00:00 2001 From: N00MKRAD Date: Wed, 27 Jan 2021 21:05:49 +0100 Subject: [PATCH] Remove alpha interp frames after merging into rgb frames --- Code/AudioVideo/FFmpegCommands.cs | 4 +++- Code/OS/AiProcess.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Code/AudioVideo/FFmpegCommands.cs b/Code/AudioVideo/FFmpegCommands.cs index ac8fff6..a852594 100644 --- a/Code/AudioVideo/FFmpegCommands.cs +++ b/Code/AudioVideo/FFmpegCommands.cs @@ -151,11 +151,13 @@ namespace Flowframes await AvProcess.RunFfmpeg(args, framesFile.GetParentDir(), AvProcess.LogMode.OnlyLastLine, AvProcess.TaskType.Encode); } - public static async Task MergeAlphaIntoRgb (string rgbDir, int rgbPad, string alphaDir, int aPad) + public static async Task MergeAlphaIntoRgb (string rgbDir, int rgbPad, string alphaDir, int aPad, bool deleteAlphaDir) { string filter = "-filter_complex [0:v:0][1:v:0]alphamerge[out] -map [out]"; string args = $"-i \"{rgbDir}/%{rgbPad}d.png\" -i \"{alphaDir}/%{aPad}d.png\" {filter} \"{rgbDir}/%{rgbPad}d.png\""; await AvProcess.RunFfmpeg(args, AvProcess.LogMode.Hidden); + if (deleteAlphaDir) + IOUtils.TryDeleteIfExists(alphaDir); } public static async Task LoopVideo(string inputFile, int times, bool delSrc = false) diff --git a/Code/OS/AiProcess.cs b/Code/OS/AiProcess.cs index 6e74987..25b999a 100644 --- a/Code/OS/AiProcess.cs +++ b/Code/OS/AiProcess.cs @@ -87,7 +87,7 @@ namespace Flowframes if (!Directory.Exists(alphaInterpDir)) return; if (Interpolate.current.outMode == Interpolate.OutMode.VidGif) await Converter.MakeBinary(alphaInterpDir, alphaInterpDir, false); // Apply threshold if output has binary alpha - await FFmpegCommands.MergeAlphaIntoRgb(rgbInterpDir, Padding.interpFrames, alphaInterpDir, Padding.interpFrames); + await FFmpegCommands.MergeAlphaIntoRgb(rgbInterpDir, Padding.interpFrames, alphaInterpDir, Padding.interpFrames, true); } }