From 38adc4d754c775d8fe4e42e299ba5cb9b345786d Mon Sep 17 00:00:00 2001 From: N00MKRAD Date: Sun, 16 May 2021 22:16:35 +0200 Subject: [PATCH] Fix AutoEnc ffmpeg log sometimes stopping & beautify log line --- Code/Media/AvProcess.cs | 8 ++------ Code/MiscUtils/FormatUtils.cs | 7 +++++++ Code/OS/AiProcess.cs | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Code/Media/AvProcess.cs b/Code/Media/AvProcess.cs index ee1f792..6484298 100644 --- a/Code/Media/AvProcess.cs +++ b/Code/Media/AvProcess.cs @@ -109,12 +109,8 @@ namespace Flowframes bool replaceLastLine = currentLogMode == LogMode.OnlyLastLine; - if (line.StartsWith("frame=")) // Format stats - { - line = line.Remove("q=-0.0").Remove("q=-1.0").Remove("size=N/A").Remove("bitrate=N/A").Replace("frame=", "Frame: ") - .Replace("fps=", "FPS: ").Replace("q=", "QP: ").Replace("time=", "Time: ").Replace("speed=", "Relative Speed: ") - .Replace("bitrate=", "Bitrate: ").Replace("Lsize=", "Size: ").Replace("size=", "Size: ").TrimWhitespaces(); - } + if (line.StartsWith("frame=")) + line = FormatUtils.BeautifyFfmpegStats(line); Logger.Log(line, hidden, replaceLastLine, "ffmpeg"); diff --git a/Code/MiscUtils/FormatUtils.cs b/Code/MiscUtils/FormatUtils.cs index 485de6e..b7c1ae9 100644 --- a/Code/MiscUtils/FormatUtils.cs +++ b/Code/MiscUtils/FormatUtils.cs @@ -171,5 +171,12 @@ namespace Flowframes.MiscUtils return new System.Drawing.Size(); } } + + public static string BeautifyFfmpegStats (string line) + { + return line.Remove("q=-0.0").Remove("q=-1.0").Remove("size=N/A").Remove("bitrate=N/A").Replace("frame=", "Frame: ") + .Replace("fps=", "FPS: ").Replace("q=", "QP: ").Replace("time=", "Time: ").Replace("speed=", "Relative Speed: ") + .Replace("bitrate=", "Bitrate: ").Replace("Lsize=", "Size: ").Replace("size=", "Size: ").TrimWhitespaces(); + } } } diff --git a/Code/OS/AiProcess.cs b/Code/OS/AiProcess.cs index 4524f45..d32d759 100644 --- a/Code/OS/AiProcess.cs +++ b/Code/OS/AiProcess.cs @@ -92,10 +92,10 @@ namespace Flowframes if (AvProcess.lastAvProcess != null && !AvProcess.lastAvProcess.HasExited && AvProcess.lastTask == AvProcess.TaskType.Encode) { string lastLine = AvProcess.lastOutputFfmpeg.SplitIntoLines().Last(); - Logger.Log(lastLine.Trim().TrimWhitespaces(), false, Logger.GetLastLine().Contains("frame")); + Logger.Log(FormatUtils.BeautifyFfmpegStats(lastLine), false, Logger.GetLastLine().ToLower().Contains("frame")); } - if (AvProcess.timeSinceLastOutput.IsRunning && AvProcess.timeSinceLastOutput.ElapsedMilliseconds > 2500) + if (AvProcess.lastAvProcess.HasExited && !AutoEncode.HasWorkToDo()) // Stop logging if ffmpeg is not running & AE is done break; await Task.Delay(500);