mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-28 23:42:13 +12:00
Added Quick Sync support to video converter tool
This commit is contained in:
parent
459e2ee357
commit
f8751e3196
4 changed files with 37 additions and 1 deletions
|
@ -47,6 +47,10 @@ public enum ConverterVideoCodecs
|
|||
h264_nvenc,
|
||||
[Description("HEVC / NVENC")]
|
||||
hevc_nvenc,
|
||||
[Description("H.264 / Quick Sync")]
|
||||
h264_qsv,
|
||||
[Description("HEVC / Quick Sync")]
|
||||
hevc_qsv,
|
||||
[Description("VP8")]
|
||||
vp8,
|
||||
[Description("VP9")]
|
||||
|
|
|
@ -95,6 +95,8 @@ private void UpdateOptions()
|
|||
case ConverterVideoCodecs.x265:
|
||||
case ConverterVideoCodecs.h264_nvenc:
|
||||
case ConverterVideoCodecs.hevc_nvenc:
|
||||
case ConverterVideoCodecs.h264_qsv:
|
||||
case ConverterVideoCodecs.hevc_qsv:
|
||||
case ConverterVideoCodecs.vp8:
|
||||
case ConverterVideoCodecs.vp9:
|
||||
case ConverterVideoCodecs.av1:
|
||||
|
@ -113,11 +115,13 @@ private void UpdateOptions()
|
|||
{
|
||||
case ConverterVideoCodecs.x264:
|
||||
case ConverterVideoCodecs.h264_nvenc:
|
||||
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_qsv:
|
||||
tbVideoQuality.Minimum = FFmpegCLIManager.x265_min;
|
||||
tbVideoQuality.Maximum = FFmpegCLIManager.x265_max;
|
||||
break;
|
||||
|
|
|
@ -315,7 +315,7 @@
|
|||
<value>160, 84</value>
|
||||
</data>
|
||||
<data name="cbVideoEncoder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 21</value>
|
||||
<value>144, 21</value>
|
||||
</data>
|
||||
<data name="cbVideoEncoder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
|
|
|
@ -150,6 +150,30 @@ public string GetFFmpegArgs()
|
|||
args.Append("-b:v 0 ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.h264_qsv: // https://trac.ffmpeg.org/wiki/Hardware/QuickSync
|
||||
args.Append("-c:v h264_qsv ");
|
||||
args.Append("-preset medium ");
|
||||
if (VideoQualityUseBitrate)
|
||||
{
|
||||
args.Append($"-b:v {VideoQualityBitrate}k ");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.x264_min, FFmpegCLIManager.x264_max)} ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.hevc_qsv: // https://trac.ffmpeg.org/wiki/Hardware/QuickSync
|
||||
args.Append("-c:v hevc_qsv ");
|
||||
args.Append("-preset medium ");
|
||||
if (VideoQualityUseBitrate)
|
||||
{
|
||||
args.Append($"-b:v {VideoQualityBitrate}k ");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.x265_min, FFmpegCLIManager.x265_max)} ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/Encode/VP8
|
||||
args.Append("-c:v libvpx ");
|
||||
if (VideoQualityUseBitrate)
|
||||
|
@ -218,6 +242,8 @@ public string GetFFmpegArgs()
|
|||
case ConverterVideoCodecs.x265:
|
||||
case ConverterVideoCodecs.h264_nvenc:
|
||||
case ConverterVideoCodecs.hevc_nvenc:
|
||||
case ConverterVideoCodecs.h264_qsv:
|
||||
case ConverterVideoCodecs.hevc_qsv:
|
||||
args.Append("-c:a aac ");
|
||||
args.Append("-b:a 128k ");
|
||||
break;
|
||||
|
@ -254,6 +280,8 @@ public string GetFileExtension()
|
|||
case ConverterVideoCodecs.x265:
|
||||
case ConverterVideoCodecs.h264_nvenc:
|
||||
case ConverterVideoCodecs.hevc_nvenc:
|
||||
case ConverterVideoCodecs.h264_qsv:
|
||||
case ConverterVideoCodecs.hevc_qsv:
|
||||
return "mp4";
|
||||
case ConverterVideoCodecs.vp8:
|
||||
case ConverterVideoCodecs.vp9:
|
||||
|
|
Loading…
Reference in a new issue