mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-29 17:02:05 +13:00
Use only bitrate for nvenc, amf and qsv
This commit is contained in:
parent
a85293c932
commit
5b781a8a49
2 changed files with 16 additions and 64 deletions
|
@ -93,12 +93,6 @@ private void UpdateOptions()
|
|||
{
|
||||
case ConverterVideoCodecs.x264:
|
||||
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:
|
||||
case ConverterVideoCodecs.vp9:
|
||||
case ConverterVideoCodecs.av1:
|
||||
|
@ -107,6 +101,16 @@ private void UpdateOptions()
|
|||
tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible = lblVideoQualityHigher.Visible = !Options.VideoQualityUseBitrate;
|
||||
nudVideoQualityBitrate.Visible = lblVideoQualityBitrateHint.Visible = Options.VideoQualityUseBitrate;
|
||||
break;
|
||||
case ConverterVideoCodecs.h264_nvenc:
|
||||
case ConverterVideoCodecs.hevc_nvenc:
|
||||
case ConverterVideoCodecs.h264_amf:
|
||||
case ConverterVideoCodecs.hevc_amf:
|
||||
case ConverterVideoCodecs.h264_qsv:
|
||||
case ConverterVideoCodecs.hevc_qsv:
|
||||
cbVideoQualityUseBitrate.Visible = false;
|
||||
tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible = lblVideoQualityHigher.Visible = false;
|
||||
nudVideoQualityBitrate.Visible = lblVideoQualityBitrateHint.Visible = true;
|
||||
break;
|
||||
default:
|
||||
cbVideoQualityUseBitrate.Visible = tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible =
|
||||
lblVideoQualityHigher.Visible = nudVideoQualityBitrate.Visible = lblVideoQualityBitrateHint.Visible = false;
|
||||
|
@ -116,16 +120,10 @@ private void UpdateOptions()
|
|||
switch (Options.VideoCodec)
|
||||
{
|
||||
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;
|
||||
break;
|
||||
|
|
|
@ -123,84 +123,38 @@ public string GetFFmpegArgs()
|
|||
args.Append("-preset p4 ");
|
||||
args.Append("-tune hq ");
|
||||
args.Append("-profile:v high ");
|
||||
if (VideoQualityUseBitrate)
|
||||
{
|
||||
args.Append($"-b:v {VideoQualityBitrate}k ");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Append("-rc vbr ");
|
||||
args.Append($"-cq {VideoQuality.Clamp(FFmpegCLIManager.x264_min, FFmpegCLIManager.x264_max)} ");
|
||||
args.Append("-b:v 0 ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.hevc_nvenc: // https://trac.ffmpeg.org/wiki/HWAccelIntro#NVENC
|
||||
args.Append("-c:v hevc_nvenc ");
|
||||
args.Append("-preset p4 ");
|
||||
args.Append("-tune hq ");
|
||||
args.Append("-profile:v main ");
|
||||
if (VideoQualityUseBitrate)
|
||||
{
|
||||
args.Append($"-b:v {VideoQualityBitrate}k ");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Append("-rc vbr ");
|
||||
args.Append($"-cq {VideoQuality.Clamp(FFmpegCLIManager.x265_min, FFmpegCLIManager.x265_max)} ");
|
||||
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 ");
|
||||
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 ");
|
||||
|
|
Loading…
Reference in a new issue