mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-05 17:56:18 +00:00
rework transcoding settings
This commit is contained in:
@@ -521,42 +521,18 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||
var isVc1 = state.VideoStream != null &&
|
||||
string.Equals(state.VideoStream.Codec, "vc1", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
var qualitySetting = state.Quality;
|
||||
|
||||
if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
param = "-preset superfast";
|
||||
|
||||
switch (qualitySetting)
|
||||
{
|
||||
case EncodingQuality.HighSpeed:
|
||||
param += " -crf 28";
|
||||
break;
|
||||
case EncodingQuality.HighQuality:
|
||||
param += " -crf 25";
|
||||
break;
|
||||
case EncodingQuality.MaxQuality:
|
||||
param += " -crf 21";
|
||||
break;
|
||||
}
|
||||
param += " -crf 28";
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
param += " -crf 28";
|
||||
}
|
||||
|
||||
// webm
|
||||
@@ -569,20 +545,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||
var qmin = "0";
|
||||
var qmax = "50";
|
||||
|
||||
switch (qualitySetting)
|
||||
{
|
||||
case EncodingQuality.HighSpeed:
|
||||
crf = "10";
|
||||
break;
|
||||
case EncodingQuality.HighQuality:
|
||||
crf = "6";
|
||||
break;
|
||||
case EncodingQuality.MaxQuality:
|
||||
crf = "4";
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Unrecognized quality setting");
|
||||
}
|
||||
crf = "10";
|
||||
|
||||
if (isVc1)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||
public Stream LogFileStream { get; set; }
|
||||
public IProgress<double> Progress { get; set; }
|
||||
public TaskCompletionSource<bool> TaskCompletionSource;
|
||||
public EncodingQuality Quality { get; set; }
|
||||
public EncodingJobOptions Options { get; set; }
|
||||
public string InputContainer { get; set; }
|
||||
public MediaSourceInfo MediaSource { get; set; }
|
||||
|
||||
@@ -96,10 +96,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||
|
||||
TryStreamCopy(state, request);
|
||||
|
||||
state.Quality = options.Context == EncodingContext.Static ?
|
||||
EncodingQuality.MaxQuality :
|
||||
GetQualitySetting();
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
@@ -199,25 +195,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||
state.MediaSource = mediaSource;
|
||||
}
|
||||
|
||||
protected EncodingQuality GetQualitySetting()
|
||||
{
|
||||
var quality = GetEncodingOptions().EncodingQuality;
|
||||
|
||||
if (quality == EncodingQuality.Auto)
|
||||
{
|
||||
var cpuCount = Environment.ProcessorCount;
|
||||
|
||||
if (cpuCount >= 4)
|
||||
{
|
||||
//return EncodingQuality.HighQuality;
|
||||
}
|
||||
|
||||
return EncodingQuality.HighSpeed;
|
||||
}
|
||||
|
||||
return quality;
|
||||
}
|
||||
|
||||
protected EncodingOptions GetEncodingOptions()
|
||||
{
|
||||
return _config.GetConfiguration<EncodingOptions>("encoding");
|
||||
|
||||
Reference in New Issue
Block a user