فهرست منبع

Add double rate deinterlacing option

Orry Verducci 4 سال پیش
والد
کامیت
7df2affb23

+ 3 - 0
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -2071,6 +2071,9 @@ namespace MediaBrowser.Controller.MediaEncoding
             var hasTextSubs = state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode;
             var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode;
 
+            // If double rate deinterlacing is enabled and the input framerate is 30fps or below, otherwise the output framerate will be too high for many devices
+            var doubleRateDeinterlace = (options.DeinterlaceDoubleRate && (videoStream?.RealFrameRate ?? 60) <= 30);
+
             // When the input may or may not be hardware VAAPI decodable
             if (isVaapiH264Encoder)
             {

+ 3 - 0
MediaBrowser.Model/Configuration/EncodingOptions.cs

@@ -35,6 +35,8 @@ namespace MediaBrowser.Model.Configuration
 
         public string EncoderPreset { get; set; }
 
+        public bool DeinterlaceDoubleRate { get; set; }
+
         public string DeinterlaceMethod { get; set; }
 
         public bool EnableDecodingColorDepth10Hevc { get; set; }
@@ -57,6 +59,7 @@ namespace MediaBrowser.Model.Configuration
             VaapiDevice = "/dev/dri/renderD128";
             H264Crf = 23;
             H265Crf = 28;
+            DeinterlaceDoubleRate = false;
             DeinterlaceMethod = "yadif";
             EnableDecodingColorDepth10Hevc = true;
             EnableDecodingColorDepth10Vp9 = true;