diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-10 22:06:16 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-10 22:06:16 -0500 |
| commit | a1f92f3de3b28e63d6f63bb63fae12073826fb36 (patch) | |
| tree | e5d7a4af6fc8e09c5fd1da2b92b5286e38149b92 /MediaBrowser.MediaEncoding/Encoder | |
| parent | 651f2a2aec283cab5b2420fda91fd6ac98a64fb0 (diff) | |
configure h265 params
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder')
| -rw-r--r-- | MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs | 46 |
1 files changed, 14 insertions, 32 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs index efe2a89e3..ecf5d72d5 100644 --- a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs +++ b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs @@ -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,29 +625,36 @@ namespace MediaBrowser.MediaEncoding.Encoder if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase)) { + param = "-preset superfast"; + switch (qualitySetting) { case EncodingQuality.HighSpeed: - param = "-preset superfast"; + param += " -crf 23"; break; case EncodingQuality.HighQuality: - param = "-preset superfast"; + param += " -crf 20"; break; case EncodingQuality.MaxQuality: - param = "-preset superfast"; + param += " -crf 18"; break; } + } + + else if (string.Equals(videoCodec, "libx265", StringComparison.OrdinalIgnoreCase)) + { + param = "-preset fast"; switch (qualitySetting) { case EncodingQuality.HighSpeed: - param += " -crf 23"; + param += " -crf 28"; break; case EncodingQuality.HighQuality: - param += " -crf 20"; + param += " -crf 25"; break; case EncodingQuality.MaxQuality: - param += " -crf 18"; + param += " -crf 21"; break; } } |
