mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -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);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Use more when this is true. -re will keep cpu usage under control
 | 
			
		||||
            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.");
 | 
			
		||||
            }
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected string H264Encoder
 | 
			
		||||
@ -338,20 +313,9 @@ namespace MediaBrowser.Api.Playback
 | 
			
		||||
 | 
			
		||||
            var qualitySetting = GetQualitySetting();
 | 
			
		||||
 | 
			
		||||
            if (string.Equals(videoCodec, H264Encoder, StringComparison.OrdinalIgnoreCase))
 | 
			
		||||
            if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
 | 
			
		||||
            {
 | 
			
		||||
                switch (qualitySetting)
 | 
			
		||||
                {
 | 
			
		||||
                    case EncodingQuality.HighSpeed:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                    case EncodingQuality.HighQuality:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                    case EncodingQuality.MaxQuality:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
                param = "-preset superfast";
 | 
			
		||||
 | 
			
		||||
                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
 | 
			
		||||
            else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
@ -317,32 +317,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 | 
			
		||||
                return Math.Max(Environment.ProcessorCount - 1, 2);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Use more when this is true. -re will keep cpu usage under control
 | 
			
		||||
            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.");
 | 
			
		||||
            }
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected EncodingQuality GetQualitySetting()
 | 
			
		||||
@ -650,18 +625,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 | 
			
		||||
 | 
			
		||||
            if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
 | 
			
		||||
            {
 | 
			
		||||
                switch (qualitySetting)
 | 
			
		||||
                {
 | 
			
		||||
                    case EncodingQuality.HighSpeed:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                    case EncodingQuality.HighQuality:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                    case EncodingQuality.MaxQuality:
 | 
			
		||||
                        param = "-preset superfast";
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
                param = "-preset superfast";
 | 
			
		||||
 | 
			
		||||
                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
 | 
			
		||||
            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)
 | 
			
		||||
        {
 | 
			
		||||
            if (!user.Configuration.EnableCinemaMode)
 | 
			
		||||
            {
 | 
			
		||||
                return new List<IntroInfo>();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var config = GetOptions();
 | 
			
		||||
 | 
			
		||||
            if (item is Movie)
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
 | 
			
		||||
            var required = new[]
 | 
			
		||||
            {
 | 
			
		||||
                "libx264",
 | 
			
		||||
                "libx265",
 | 
			
		||||
                "mpeg4",
 | 
			
		||||
                "msmpeg4",
 | 
			
		||||
                "libvpx",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user