mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
fixed #4914: Added AV1 support to video converter tool
This commit is contained in:
parent
1f6c6996cd
commit
911c81b065
4 changed files with 28 additions and 2 deletions
|
@ -43,10 +43,12 @@ public enum ConverterVideoCodecs
|
|||
x264,
|
||||
[Description("H.265 / x265")]
|
||||
x265,
|
||||
[Description("VP8 (WebM)")]
|
||||
[Description("VP8")]
|
||||
vp8,
|
||||
[Description("VP9 (WebM)")]
|
||||
[Description("VP9")]
|
||||
vp9,
|
||||
[Description("AV1")]
|
||||
av1,
|
||||
[Description("MPEG-4 / Xvid")]
|
||||
xvid,
|
||||
[Description("GIF")]
|
||||
|
|
|
@ -51,6 +51,8 @@ public class FFmpegCLIManager : ExternalCLIManager
|
|||
public const int vp8_max = 63;
|
||||
public const int vp9_min = 0;
|
||||
public const int vp9_max = 63;
|
||||
public const int av1_min = 0;
|
||||
public const int av1_max = 63;
|
||||
public const int xvid_min = 1;
|
||||
public const int xvid_max = 31;
|
||||
public const int mp3_min = 0;
|
||||
|
|
|
@ -95,6 +95,7 @@ private void UpdateOptions()
|
|||
case ConverterVideoCodecs.x265:
|
||||
case ConverterVideoCodecs.vp8:
|
||||
case ConverterVideoCodecs.vp9:
|
||||
case ConverterVideoCodecs.av1:
|
||||
case ConverterVideoCodecs.xvid:
|
||||
cbVideoQualityUseBitrate.Visible = true;
|
||||
tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible = lblVideoQualityHigher.Visible = !Options.VideoQualityUseBitrate;
|
||||
|
@ -124,6 +125,10 @@ private void UpdateOptions()
|
|||
tbVideoQuality.Minimum = FFmpegCLIManager.vp9_min;
|
||||
tbVideoQuality.Maximum = FFmpegCLIManager.vp9_max;
|
||||
break;
|
||||
case ConverterVideoCodecs.av1:
|
||||
tbVideoQuality.Minimum = FFmpegCLIManager.av1_min;
|
||||
tbVideoQuality.Maximum = FFmpegCLIManager.av1_max;
|
||||
break;
|
||||
case ConverterVideoCodecs.xvid:
|
||||
tbVideoQuality.Minimum = FFmpegCLIManager.xvid_min;
|
||||
tbVideoQuality.Maximum = FFmpegCLIManager.xvid_max;
|
||||
|
|
|
@ -136,6 +136,17 @@ public string GetFFmpegArgs()
|
|||
args.Append("-b:v 0 ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.av1: // https://trac.ffmpeg.org/wiki/Encode/AV1
|
||||
args.Append("-c:v libsvtav1 ");
|
||||
if (VideoQualityUseBitrate)
|
||||
{
|
||||
args.Append($"-b:v {VideoQualityBitrate}k ");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.av1_min, FFmpegCLIManager.av1_max)} ");
|
||||
}
|
||||
break;
|
||||
case ConverterVideoCodecs.xvid: // https://trac.ffmpeg.org/wiki/Encode/MPEG-4
|
||||
args.Append("-c:v libxvid ");
|
||||
if (VideoQualityUseBitrate)
|
||||
|
@ -175,6 +186,10 @@ public string GetFFmpegArgs()
|
|||
args.Append("-c:a libvorbis ");
|
||||
args.Append("-q:a 3 ");
|
||||
break;
|
||||
case ConverterVideoCodecs.av1: // https://ffmpeg.org/ffmpeg-codecs.html#libopus-1
|
||||
args.Append("-c:a libopus ");
|
||||
args.Append("-b:a 128k ");
|
||||
break;
|
||||
case ConverterVideoCodecs.xvid: // https://trac.ffmpeg.org/wiki/Encode/MP3
|
||||
args.Append("-c:a libmp3lame ");
|
||||
args.Append("-q:a 4 ");
|
||||
|
@ -201,6 +216,8 @@ public string GetFileExtension()
|
|||
case ConverterVideoCodecs.vp8:
|
||||
case ConverterVideoCodecs.vp9:
|
||||
return "webm";
|
||||
case ConverterVideoCodecs.av1:
|
||||
return "mkv";
|
||||
case ConverterVideoCodecs.xvid:
|
||||
return "avi";
|
||||
case ConverterVideoCodecs.gif:
|
||||
|
|
Loading…
Reference in a new issue