Files
VideoEncoderService/EncodingSampleTest/NvencExt.cs

41 lines
937 B
C#

using System.ComponentModel.DataAnnotations;
namespace EncodingSampleTest;
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 {(int)tune}"; } }
}
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}"; } }
}