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; }
}