Przeglądaj źródła

Backport pull request #8280 from jellyfin/release-10.8.z

Fix ffmpeg analyze duration env var taking priority over media source

Original-merge: 632fb05f467a935da5765fccd1595dfd501247d0

Merged-by: Claus Vium <cvium@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
Bill Thornton 2 lat temu
rodzic
commit
e8c12e5078

+ 4 - 4
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -4991,13 +4991,13 @@ namespace MediaBrowser.Controller.MediaEncoding
             // The default value of -probesize is more than enough, so leave it as is.
             var ffmpegAnalyzeDuration = _config.GetFFmpegAnalyzeDuration() ?? string.Empty;
 
-            if (!string.IsNullOrEmpty(ffmpegAnalyzeDuration))
+            if (state.MediaSource.AnalyzeDurationMs > 0)
             {
-                analyzeDurationArgument = "-analyzeduration " + ffmpegAnalyzeDuration;
+                analyzeDurationArgument = "-analyzeduration " + (state.MediaSource.AnalyzeDurationMs.Value * 1000).ToString(CultureInfo.InvariantCulture);
             }
-            else if (state.MediaSource.AnalyzeDurationMs.HasValue)
+            else if (!string.IsNullOrEmpty(ffmpegAnalyzeDuration))
             {
-                analyzeDurationArgument = "-analyzeduration " + (state.MediaSource.AnalyzeDurationMs.Value * 1000).ToString(CultureInfo.InvariantCulture);
+                analyzeDurationArgument = "-analyzeduration " + ffmpegAnalyzeDuration;
             }
 
             if (!string.IsNullOrEmpty(analyzeDurationArgument))

+ 5 - 5
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -382,15 +382,15 @@ namespace MediaBrowser.MediaEncoding.Encoder
             string analyzeDuration = string.Empty;
             string ffmpegAnalyzeDuration = _config.GetFFmpegAnalyzeDuration() ?? string.Empty;
 
-            if (!string.IsNullOrEmpty(ffmpegAnalyzeDuration))
-            {
-                analyzeDuration = "-analyzeduration " + ffmpegAnalyzeDuration;
-            }
-            else if (request.MediaSource.AnalyzeDurationMs > 0)
+            if (request.MediaSource.AnalyzeDurationMs > 0)
             {
                 analyzeDuration = "-analyzeduration " +
                                   (request.MediaSource.AnalyzeDurationMs * 1000).ToString();
             }
+            else if (!string.IsNullOrEmpty(ffmpegAnalyzeDuration))
+            {
+                analyzeDuration = "-analyzeduration " + ffmpegAnalyzeDuration;
+            }
 
             var forceEnableLogging = request.MediaSource.Protocol != MediaProtocol.File;