mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-28 23:42:13 +12:00
Added AMF support to video converter tool
This commit is contained in:
parent
f8751e3196
commit
d249977e24
3 changed files with 40 additions and 0 deletions
|
@ -47,6 +47,10 @@ public enum ConverterVideoCodecs
|
||||||
h264_nvenc,
|
h264_nvenc,
|
||||||
[Description("HEVC / NVENC")]
|
[Description("HEVC / NVENC")]
|
||||||
hevc_nvenc,
|
hevc_nvenc,
|
||||||
|
[Description("H.264 / AMF")]
|
||||||
|
h264_amf,
|
||||||
|
[Description("HEVC / AMF")]
|
||||||
|
hevc_amf,
|
||||||
[Description("H.264 / Quick Sync")]
|
[Description("H.264 / Quick Sync")]
|
||||||
h264_qsv,
|
h264_qsv,
|
||||||
[Description("HEVC / Quick Sync")]
|
[Description("HEVC / Quick Sync")]
|
||||||
|
|
|
@ -95,6 +95,8 @@ private void UpdateOptions()
|
||||||
case ConverterVideoCodecs.x265:
|
case ConverterVideoCodecs.x265:
|
||||||
case ConverterVideoCodecs.h264_nvenc:
|
case ConverterVideoCodecs.h264_nvenc:
|
||||||
case ConverterVideoCodecs.hevc_nvenc:
|
case ConverterVideoCodecs.hevc_nvenc:
|
||||||
|
case ConverterVideoCodecs.h264_amf:
|
||||||
|
case ConverterVideoCodecs.hevc_amf:
|
||||||
case ConverterVideoCodecs.h264_qsv:
|
case ConverterVideoCodecs.h264_qsv:
|
||||||
case ConverterVideoCodecs.hevc_qsv:
|
case ConverterVideoCodecs.hevc_qsv:
|
||||||
case ConverterVideoCodecs.vp8:
|
case ConverterVideoCodecs.vp8:
|
||||||
|
@ -115,12 +117,14 @@ private void UpdateOptions()
|
||||||
{
|
{
|
||||||
case ConverterVideoCodecs.x264:
|
case ConverterVideoCodecs.x264:
|
||||||
case ConverterVideoCodecs.h264_nvenc:
|
case ConverterVideoCodecs.h264_nvenc:
|
||||||
|
case ConverterVideoCodecs.h264_amf:
|
||||||
case ConverterVideoCodecs.h264_qsv:
|
case ConverterVideoCodecs.h264_qsv:
|
||||||
tbVideoQuality.Minimum = FFmpegCLIManager.x264_min;
|
tbVideoQuality.Minimum = FFmpegCLIManager.x264_min;
|
||||||
tbVideoQuality.Maximum = FFmpegCLIManager.x264_max;
|
tbVideoQuality.Maximum = FFmpegCLIManager.x264_max;
|
||||||
break;
|
break;
|
||||||
case ConverterVideoCodecs.x265:
|
case ConverterVideoCodecs.x265:
|
||||||
case ConverterVideoCodecs.hevc_nvenc:
|
case ConverterVideoCodecs.hevc_nvenc:
|
||||||
|
case ConverterVideoCodecs.hevc_amf:
|
||||||
case ConverterVideoCodecs.hevc_qsv:
|
case ConverterVideoCodecs.hevc_qsv:
|
||||||
tbVideoQuality.Minimum = FFmpegCLIManager.x265_min;
|
tbVideoQuality.Minimum = FFmpegCLIManager.x265_min;
|
||||||
tbVideoQuality.Maximum = FFmpegCLIManager.x265_max;
|
tbVideoQuality.Maximum = FFmpegCLIManager.x265_max;
|
||||||
|
|
|
@ -150,6 +150,34 @@ public string GetFFmpegArgs()
|
||||||
args.Append("-b:v 0 ");
|
args.Append("-b:v 0 ");
|
||||||
}
|
}
|
||||||
break;
|
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
|
case ConverterVideoCodecs.h264_qsv: // https://trac.ffmpeg.org/wiki/Hardware/QuickSync
|
||||||
args.Append("-c:v h264_qsv ");
|
args.Append("-c:v h264_qsv ");
|
||||||
args.Append("-preset medium ");
|
args.Append("-preset medium ");
|
||||||
|
@ -242,6 +270,8 @@ public string GetFFmpegArgs()
|
||||||
case ConverterVideoCodecs.x265:
|
case ConverterVideoCodecs.x265:
|
||||||
case ConverterVideoCodecs.h264_nvenc:
|
case ConverterVideoCodecs.h264_nvenc:
|
||||||
case ConverterVideoCodecs.hevc_nvenc:
|
case ConverterVideoCodecs.hevc_nvenc:
|
||||||
|
case ConverterVideoCodecs.h264_amf:
|
||||||
|
case ConverterVideoCodecs.hevc_amf:
|
||||||
case ConverterVideoCodecs.h264_qsv:
|
case ConverterVideoCodecs.h264_qsv:
|
||||||
case ConverterVideoCodecs.hevc_qsv:
|
case ConverterVideoCodecs.hevc_qsv:
|
||||||
args.Append("-c:a aac ");
|
args.Append("-c:a aac ");
|
||||||
|
@ -280,6 +310,8 @@ public string GetFileExtension()
|
||||||
case ConverterVideoCodecs.x265:
|
case ConverterVideoCodecs.x265:
|
||||||
case ConverterVideoCodecs.h264_nvenc:
|
case ConverterVideoCodecs.h264_nvenc:
|
||||||
case ConverterVideoCodecs.hevc_nvenc:
|
case ConverterVideoCodecs.hevc_nvenc:
|
||||||
|
case ConverterVideoCodecs.h264_amf:
|
||||||
|
case ConverterVideoCodecs.hevc_amf:
|
||||||
case ConverterVideoCodecs.h264_qsv:
|
case ConverterVideoCodecs.h264_qsv:
|
||||||
case ConverterVideoCodecs.hevc_qsv:
|
case ConverterVideoCodecs.hevc_qsv:
|
||||||
return "mp4";
|
return "mp4";
|
||||||
|
|
Loading…
Reference in a new issue