From 29e17b6bc0c002d0de5469d1f795ccacf4a41b56 Mon Sep 17 00:00:00 2001 From: Evan Date: Fri, 15 Aug 2025 07:16:41 +0800 Subject: [PATCH] Run background ffmpeg tasks as ProcessPriorityClass.BelowNormal Follow TrickPlay example of running other background ffmpeg tasks as ProcessPriorityClass.BelowNormal: - Keyframe extraction - Media info probing during library scans - Audio normalization - Image extraction --- .../ScheduledTasks/Tasks/AudioNormalizationTask.cs | 1 + MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs | 1 + .../FfProbe/FfProbeKeyframeExtractor.cs | 1 + 3 files changed, 3 insertions(+) diff --git a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs index e912e9f014..24992c44a6 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs @@ -199,6 +199,7 @@ public partial class AudioNormalizationTask : IScheduledTask { _logger.LogDebug("Starting ffmpeg with arguments: {Arguments}", args); process.Start(); + process.PriorityClass = ProcessPriorityClass.BelowNormal; } catch (Exception ex) { diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs index 237b537bc3..d71d46c00e 100644 --- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs +++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs @@ -1122,6 +1122,7 @@ namespace MediaBrowser.MediaEncoding.Encoder private void StartProcess(ProcessWrapper process) { process.Process.Start(); + process.Process.PriorityClass = ProcessPriorityClass.BelowNormal; lock (_runningProcessesLock) { diff --git a/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs b/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs index 570c0b9d03..a0dafb8f19 100644 --- a/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs +++ b/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs @@ -42,6 +42,7 @@ public static class FfProbeKeyframeExtractor try { process.Start(); + process.PriorityClass = ProcessPriorityClass.BelowNormal; return ParseStream(process.StandardOutput); }