This commit is contained in:
d3fault 2024-08-21 22:33:01 -04:00 committed by GitHub
commit a96e6c716e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,6 +22,7 @@ from ..utils import (
dfxp2srt, dfxp2srt,
ISO639Utils, ISO639Utils,
replace_extension, replace_extension,
compat_str,
) )
@ -300,9 +301,16 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
extension = self._preferredcodec extension = self._preferredcodec
more_opts = [] more_opts = []
if self._preferredquality is not None: if self._preferredquality is not None:
# The opus codec doesn't support the -aq option if int(self._preferredquality) < 10:
if int(self._preferredquality) < 10 and extension != 'opus': if extension == 'opus':
more_opts += ['-q:a', self._preferredquality] # The opus codec doesn't support the -q:a option
# Magic number of 24 used to give quality numbers 0-9 *some* meaning (as suggested by "knarrff" on Github)
# 0 (best quality) gives 210 kb/s
# 5 (default) gives 96 kb/s
# 9 (worst quality) gives 6 kb/s, which is the opus minimum (and 0 kb/s wouldn't make any sense)
more_opts += ['-b:a', compat_str(max(6, int((9 - int(self._preferredquality)) * 24))) + 'k']
else:
more_opts += ['-q:a', self._preferredquality]
else: else:
more_opts += ['-b:a', self._preferredquality + 'k'] more_opts += ['-b:a', self._preferredquality + 'k']
if self._preferredcodec == 'aac': if self._preferredcodec == 'aac':