41 lines
942 B
C#
41 lines
942 B
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Encoder;
|
|
|
|
public enum NvencSpeed {
|
|
Default=0,
|
|
Slow=1,
|
|
Medium=2,
|
|
Fast=3,
|
|
p1=12,
|
|
p2=13,
|
|
p3=14,
|
|
p4=15,
|
|
p5=16,
|
|
p6=17,
|
|
p7=18,
|
|
}
|
|
|
|
public enum NvencTune {
|
|
hq=1,
|
|
uhq=5,
|
|
ll=2,
|
|
ull=3,
|
|
lossless=4,
|
|
}
|
|
|
|
class NvencSpeedPreset(NvencSpeed speed) : FFMpegCore.Arguments.IArgument {
|
|
public string Text { get { return $"-preset {speed.ToString().ToLower()}"; } }
|
|
}
|
|
|
|
class NvencTuneArgument(NvencTune tune) : FFMpegCore.Arguments.IArgument {
|
|
public string Text { get { return $"-tune {tune.ToString().ToLower()}"; } }
|
|
}
|
|
|
|
class NvencHighBitDepthArgument(bool enable) : FFMpegCore.Arguments.IArgument {
|
|
public string Text { get { return enable ? "-highbitdepth true" : string.Empty; } }
|
|
}
|
|
|
|
class NvencQPArgument([Range(-1, 255)]byte qp) : FFMpegCore.Arguments.IArgument {
|
|
public string Text { get { return $"-qp {qp}"; } }
|
|
} |