Added AMF support to video converter tool

This commit is contained in:
Jaex 2023-05-11 19:13:32 +03:00
parent f8751e3196
commit d249977e24
3 changed files with 40 additions and 0 deletions

View file

@ -47,6 +47,10 @@ public enum ConverterVideoCodecs
h264_nvenc,
[Description("HEVC / NVENC")]
hevc_nvenc,
[Description("H.264 / AMF")]
h264_amf,
[Description("HEVC / AMF")]
hevc_amf,
[Description("H.264 / Quick Sync")]
h264_qsv,
[Description("HEVC / Quick Sync")]

View file

@ -95,6 +95,8 @@ private void UpdateOptions()
case ConverterVideoCodecs.x265:
case ConverterVideoCodecs.h264_nvenc:
case ConverterVideoCodecs.hevc_nvenc:
case ConverterVideoCodecs.h264_amf:
case ConverterVideoCodecs.hevc_amf:
case ConverterVideoCodecs.h264_qsv:
case ConverterVideoCodecs.hevc_qsv:
case ConverterVideoCodecs.vp8:
@ -115,12 +117,14 @@ private void UpdateOptions()
{
case ConverterVideoCodecs.x264:
case ConverterVideoCodecs.h264_nvenc:
case ConverterVideoCodecs.h264_amf:
case ConverterVideoCodecs.h264_qsv:
tbVideoQuality.Minimum = FFmpegCLIManager.x264_min;
tbVideoQuality.Maximum = FFmpegCLIManager.x264_max;
break;
case ConverterVideoCodecs.x265:
case ConverterVideoCodecs.hevc_nvenc:
case ConverterVideoCodecs.hevc_amf:
case ConverterVideoCodecs.hevc_qsv:
tbVideoQuality.Minimum = FFmpegCLIManager.x265_min;
tbVideoQuality.Maximum = FFmpegCLIManager.x265_max;

View file

@ -150,6 +150,34 @@ public string GetFFmpegArgs()
args.Append("-b:v 0 ");
}
break;
case ConverterVideoCodecs.h264_amf:
args.Append("-c:v h264_amf ");
args.Append("-usage transcoding ");
args.Append("-profile main ");
args.Append("-quality balanced ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
// TODO: CRF?
}
break;
case ConverterVideoCodecs.hevc_amf:
args.Append("-c:v hevc_amf ");
args.Append("-usage transcoding ");
args.Append("-profile main ");
args.Append("-quality balanced ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
// TODO: CRF?
}
break;
case ConverterVideoCodecs.h264_qsv: // https://trac.ffmpeg.org/wiki/Hardware/QuickSync
args.Append("-c:v h264_qsv ");
args.Append("-preset medium ");
@ -242,6 +270,8 @@ public string GetFFmpegArgs()
case ConverterVideoCodecs.x265:
case ConverterVideoCodecs.h264_nvenc:
case ConverterVideoCodecs.hevc_nvenc:
case ConverterVideoCodecs.h264_amf:
case ConverterVideoCodecs.hevc_amf:
case ConverterVideoCodecs.h264_qsv:
case ConverterVideoCodecs.hevc_qsv:
args.Append("-c:a aac ");
@ -280,6 +310,8 @@ public string GetFileExtension()
case ConverterVideoCodecs.x265:
case ConverterVideoCodecs.h264_nvenc:
case ConverterVideoCodecs.hevc_nvenc:
case ConverterVideoCodecs.h264_amf:
case ConverterVideoCodecs.hevc_amf:
case ConverterVideoCodecs.h264_qsv:
case ConverterVideoCodecs.hevc_qsv:
return "mp4";