configure h265 params

This commit is contained in:
Luke Pulverenti
2015-01-10 22:06:16 -05:00
parent 651f2a2aec
commit a1f92f3de3
4 changed files with 47 additions and 77 deletions

View File

@@ -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))
{