mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-04 03:27:21 -05:00 
			
		
		
		
	configure h265 params
This commit is contained in:
		
							parent
							
								
									651f2a2aec
								
							
						
					
					
						commit
						a1f92f3de3
					
				@ -279,32 +279,7 @@ namespace MediaBrowser.Api.Playback
 | 
				
			|||||||
                return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
					                return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Use more when this is true. -re will keep cpu usage under control
 | 
					            return 0;
 | 
				
			||||||
            if (state.ReadInputAtNativeFramerate)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                if (isWebm)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                return 0;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Webm: http://www.webmproject.org/docs/encoder-parameters/
 | 
					 | 
				
			||||||
            // The decoder will usually automatically use an appropriate number of threads according to how many cores are available but it can only use multiple threads 
 | 
					 | 
				
			||||||
            // for the coefficient data if the encoder selected --token-parts > 0 at encode time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            switch (GetQualitySetting())
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                case EncodingQuality.HighSpeed:
 | 
					 | 
				
			||||||
                    return 2;
 | 
					 | 
				
			||||||
                case EncodingQuality.HighQuality:
 | 
					 | 
				
			||||||
                    return 2;
 | 
					 | 
				
			||||||
                case EncodingQuality.MaxQuality:
 | 
					 | 
				
			||||||
                    return isWebm ? Math.Max(Environment.ProcessorCount - 1, 2) : 0;
 | 
					 | 
				
			||||||
                default:
 | 
					 | 
				
			||||||
                    throw new Exception("Unrecognized MediaEncodingQuality value.");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected string H264Encoder
 | 
					        protected string H264Encoder
 | 
				
			||||||
@ -338,20 +313,9 @@ namespace MediaBrowser.Api.Playback
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            var qualitySetting = GetQualitySetting();
 | 
					            var qualitySetting = GetQualitySetting();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (string.Equals(videoCodec, H264Encoder, StringComparison.OrdinalIgnoreCase))
 | 
					            if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                switch (qualitySetting)
 | 
					                param = "-preset superfast";
 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    case EncodingQuality.HighSpeed:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    case EncodingQuality.HighQuality:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    case EncodingQuality.MaxQuality:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                switch (qualitySetting)
 | 
					                switch (qualitySetting)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@ -367,6 +331,24 @@ namespace MediaBrowser.Api.Playback
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            else if (string.Equals(videoCodec, "libx265", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                param = "-preset fast";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                switch (qualitySetting)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    case EncodingQuality.HighSpeed:
 | 
				
			||||||
 | 
					                        param += " -crf 28";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case EncodingQuality.HighQuality:
 | 
				
			||||||
 | 
					                        param += " -crf 25";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case EncodingQuality.MaxQuality:
 | 
				
			||||||
 | 
					                        param += " -crf 21";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // webm
 | 
					            // webm
 | 
				
			||||||
            else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
 | 
					            else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
				
			|||||||
@ -317,32 +317,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 | 
				
			|||||||
                return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
					                return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Use more when this is true. -re will keep cpu usage under control
 | 
					            return 0;
 | 
				
			||||||
            if (job.ReadInputAtNativeFramerate)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                if (isWebm)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                return 0;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Webm: http://www.webmproject.org/docs/encoder-parameters/
 | 
					 | 
				
			||||||
            // The decoder will usually automatically use an appropriate number of threads according to how many cores are available but it can only use multiple threads 
 | 
					 | 
				
			||||||
            // for the coefficient data if the encoder selected --token-parts > 0 at encode time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            switch (GetQualitySetting())
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                case EncodingQuality.HighSpeed:
 | 
					 | 
				
			||||||
                    return 2;
 | 
					 | 
				
			||||||
                case EncodingQuality.HighQuality:
 | 
					 | 
				
			||||||
                    return 2;
 | 
					 | 
				
			||||||
                case EncodingQuality.MaxQuality:
 | 
					 | 
				
			||||||
                    return isWebm ? Math.Max(Environment.ProcessorCount - 1, 2) : 0;
 | 
					 | 
				
			||||||
                default:
 | 
					 | 
				
			||||||
                    throw new Exception("Unrecognized MediaEncodingQuality value.");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected EncodingQuality GetQualitySetting()
 | 
					        protected EncodingQuality GetQualitySetting()
 | 
				
			||||||
@ -650,18 +625,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
 | 
					            if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                switch (qualitySetting)
 | 
					                param = "-preset superfast";
 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    case EncodingQuality.HighSpeed:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    case EncodingQuality.HighQuality:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    case EncodingQuality.MaxQuality:
 | 
					 | 
				
			||||||
                        param = "-preset superfast";
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                switch (qualitySetting)
 | 
					                switch (qualitySetting)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@ -677,6 +641,24 @@ namespace MediaBrowser.MediaEncoding.Encoder
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            else if (string.Equals(videoCodec, "libx265", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                param = "-preset fast";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                switch (qualitySetting)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    case EncodingQuality.HighSpeed:
 | 
				
			||||||
 | 
					                        param += " -crf 28";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case EncodingQuality.HighQuality:
 | 
				
			||||||
 | 
					                        param += " -crf 25";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case EncodingQuality.MaxQuality:
 | 
				
			||||||
 | 
					                        param += " -crf 21";
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // webm
 | 
					            // webm
 | 
				
			||||||
            else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
 | 
					            else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
				
			|||||||
@ -37,6 +37,11 @@ namespace MediaBrowser.Server.Implementations.Intros
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public async Task<IEnumerable<IntroInfo>> GetIntros(BaseItem item, User user)
 | 
					        public async Task<IEnumerable<IntroInfo>> GetIntros(BaseItem item, User user)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            if (!user.Configuration.EnableCinemaMode)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return new List<IntroInfo>();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var config = GetOptions();
 | 
					            var config = GetOptions();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (item is Movie)
 | 
					            if (item is Movie)
 | 
				
			||||||
 | 
				
			|||||||
@ -88,6 +88,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
 | 
				
			|||||||
            var required = new[]
 | 
					            var required = new[]
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                "libx264",
 | 
					                "libx264",
 | 
				
			||||||
 | 
					                "libx265",
 | 
				
			||||||
                "mpeg4",
 | 
					                "mpeg4",
 | 
				
			||||||
                "msmpeg4",
 | 
					                "msmpeg4",
 | 
				
			||||||
                "libvpx",
 | 
					                "libvpx",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user