mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-28 23:42:13 +12:00
Do not use audio encoder if input file is png, apng or webp
This commit is contained in:
parent
3274e2cf4e
commit
ccc2db5aec
1 changed files with 40 additions and 26 deletions
|
@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License
|
|||
#endregion License Information (GPL v3)
|
||||
|
||||
using ShareX.HelpersLib;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
|
@ -56,6 +57,16 @@ public string OutputFilePath
|
|||
}
|
||||
}
|
||||
|
||||
public bool IsInputFileAnimationOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return InputFilePath.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
|
||||
InputFilePath.EndsWith(".apng", StringComparison.OrdinalIgnoreCase) ||
|
||||
InputFilePath.EndsWith(".webp", StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
}
|
||||
|
||||
public ConverterVideoCodecs VideoCodec { get; set; } = ConverterVideoCodecs.x264;
|
||||
public int VideoQuality { get; set; } = 23;
|
||||
public bool VideoQualityUseBitrate { get; set; } = false;
|
||||
|
@ -217,33 +228,36 @@ public string GetFFmpegArgs()
|
|||
break;
|
||||
}
|
||||
|
||||
// Audio encoder
|
||||
switch (VideoCodec)
|
||||
if (!IsInputFileAnimationOnly)
|
||||
{
|
||||
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/AAC
|
||||
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 ");
|
||||
args.Append("-b:a 128k ");
|
||||
break;
|
||||
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide
|
||||
case ConverterVideoCodecs.vp9:
|
||||
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 ");
|
||||
break;
|
||||
// Audio encoder
|
||||
switch (VideoCodec)
|
||||
{
|
||||
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/AAC
|
||||
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 ");
|
||||
args.Append("-b:a 128k ");
|
||||
break;
|
||||
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide
|
||||
case ConverterVideoCodecs.vp9:
|
||||
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 ");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Overwrite output files without asking
|
||||
|
|
Loading…
Reference in a new issue