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)
|
#endregion License Information (GPL v3)
|
||||||
|
|
||||||
using ShareX.HelpersLib;
|
using ShareX.HelpersLib;
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
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 ConverterVideoCodecs VideoCodec { get; set; } = ConverterVideoCodecs.x264;
|
||||||
public int VideoQuality { get; set; } = 23;
|
public int VideoQuality { get; set; } = 23;
|
||||||
public bool VideoQualityUseBitrate { get; set; } = false;
|
public bool VideoQualityUseBitrate { get; set; } = false;
|
||||||
|
@ -217,33 +228,36 @@ public string GetFFmpegArgs()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Audio encoder
|
if (!IsInputFileAnimationOnly)
|
||||||
switch (VideoCodec)
|
|
||||||
{
|
{
|
||||||
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/AAC
|
// Audio encoder
|
||||||
case ConverterVideoCodecs.x265:
|
switch (VideoCodec)
|
||||||
case ConverterVideoCodecs.h264_nvenc:
|
{
|
||||||
case ConverterVideoCodecs.hevc_nvenc:
|
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/AAC
|
||||||
case ConverterVideoCodecs.h264_amf:
|
case ConverterVideoCodecs.x265:
|
||||||
case ConverterVideoCodecs.hevc_amf:
|
case ConverterVideoCodecs.h264_nvenc:
|
||||||
case ConverterVideoCodecs.h264_qsv:
|
case ConverterVideoCodecs.hevc_nvenc:
|
||||||
case ConverterVideoCodecs.hevc_qsv:
|
case ConverterVideoCodecs.h264_amf:
|
||||||
args.Append("-c:a aac ");
|
case ConverterVideoCodecs.hevc_amf:
|
||||||
args.Append("-b:a 128k ");
|
case ConverterVideoCodecs.h264_qsv:
|
||||||
break;
|
case ConverterVideoCodecs.hevc_qsv:
|
||||||
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide
|
args.Append("-c:a aac ");
|
||||||
case ConverterVideoCodecs.vp9:
|
args.Append("-b:a 128k ");
|
||||||
args.Append("-c:a libvorbis ");
|
break;
|
||||||
args.Append("-q:a 3 ");
|
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide
|
||||||
break;
|
case ConverterVideoCodecs.vp9:
|
||||||
case ConverterVideoCodecs.av1: // https://ffmpeg.org/ffmpeg-codecs.html#libopus-1
|
args.Append("-c:a libvorbis ");
|
||||||
args.Append("-c:a libopus ");
|
args.Append("-q:a 3 ");
|
||||||
args.Append("-b:a 128k ");
|
break;
|
||||||
break;
|
case ConverterVideoCodecs.av1: // https://ffmpeg.org/ffmpeg-codecs.html#libopus-1
|
||||||
case ConverterVideoCodecs.xvid: // https://trac.ffmpeg.org/wiki/Encode/MP3
|
args.Append("-c:a libopus ");
|
||||||
args.Append("-c:a libmp3lame ");
|
args.Append("-b:a 128k ");
|
||||||
args.Append("-q:a 4 ");
|
break;
|
||||||
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
|
// Overwrite output files without asking
|
||||||
|
|
Loading…
Reference in a new issue