Do not use audio encoder if input file is png, apng or webp

This commit is contained in:
Jaex 2023-11-26 03:32:45 +03:00
parent 3274e2cf4e
commit ccc2db5aec

View file

@ -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