From 28854ebf2e475402af607ffac76d8390fafacacf Mon Sep 17 00:00:00 2001 From: mani Date: Tue, 6 Jan 2026 02:17:07 +0100 Subject: [PATCH] Add configurable FFmpeg log level - Add FfmpegLogLevel property to EncodingOptions (default: 'error') - Use configuration value in GetInputModifier instead of hardcoded value - Allows changing log verbosity without rebuild via encoding.xml - Possible values: quiet, panic, fatal, error, warning, info, verbose, debug, trace --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 9 ++++++++- MediaBrowser.Model/Configuration/EncodingOptions.cs | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 7e6f7298b9..94bfc92725 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -7105,7 +7105,14 @@ namespace MediaBrowser.Controller.MediaEncoding public string GetInputModifier(EncodingJobInfo state, EncodingOptions encodingOptions, string segmentContainer) { - var inputModifier = "-loglevel error"; + var inputModifier = string.Empty; + + // Apply FFmpeg log level from configuration + if (!string.IsNullOrEmpty(encodingOptions.FfmpegLogLevel)) + { + inputModifier = $"-loglevel {encodingOptions.FfmpegLogLevel}"; + } + var analyzeDurationArgument = string.Empty; // Apply -analyzeduration as per the environment variable, diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs index 2720c0bdf6..a0494453f6 100644 --- a/MediaBrowser.Model/Configuration/EncodingOptions.cs +++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs @@ -59,6 +59,7 @@ public class EncodingOptions EnableSubtitleExtraction = true; AllowOnDemandMetadataBasedKeyframeExtractionForExtensions = ["mkv"]; HardwareDecodingCodecs = ["h264", "vc1"]; + FfmpegLogLevel = "error"; } /// @@ -295,4 +296,9 @@ public class EncodingOptions /// Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for. /// public string[] AllowOnDemandMetadataBasedKeyframeExtractionForExtensions { get; set; } + + /// + /// Gets or sets the FFmpeg log level (quiet, panic, fatal, error, warning, info, verbose, debug, trace). + /// + public string FfmpegLogLevel { get; set; } }