This commit is contained in:
Paulo Nahes 2020-09-26 04:55:38 +02:00 committed by GitHub
commit 40b587045d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View File

@ -209,6 +209,9 @@ def _real_main(argv=None):
opts.audioquality = opts.audioquality.strip('k').strip('K')
if not opts.audioquality.isdigit():
parser.error('invalid audio quality specified')
if opts.audiovolume:
if not opts.audioquality.isdigit():
parser.error('invalid audio volume specified')
if opts.recodevideo is not None:
if opts.recodevideo not in ['mp4', 'flv', 'webm', 'ogg', 'mkv', 'avi']:
parser.error('invalid video recode format specified')
@ -259,6 +262,7 @@ def _real_main(argv=None):
'key': 'FFmpegExtractAudio',
'preferredcodec': opts.audioformat,
'preferredquality': opts.audioquality,
'preferredvolume': opts.audiovolume,
'nopostoverwrites': opts.nopostoverwrites,
})
if opts.recodevideo:

View File

@ -790,6 +790,10 @@ def parseOpts(overrideArguments=None):
'--audio-quality', metavar='QUALITY',
dest='audioquality', default='5',
help='Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default %default)')
postproc.add_option(
'--audio-volume', metavar='VOLUME',
dest='audiovolume',
help='Specify ffmpeg/avconv audio volume, insert a value in dB to increase audio volume')
postproc.add_option(
'--recode-video',
metavar='FORMAT', dest='recodevideo', default=None,

View File

@ -247,12 +247,13 @@ class FFmpegPostProcessor(PostProcessor):
class FFmpegExtractAudioPP(FFmpegPostProcessor):
def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, nopostoverwrites=False):
def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, preferredvolume=None, nopostoverwrites=False):
FFmpegPostProcessor.__init__(self, downloader)
if preferredcodec is None:
preferredcodec = 'best'
self._preferredcodec = preferredcodec
self._preferredquality = preferredquality
self._preferredvolume = preferredvolume
self._nopostoverwrites = nopostoverwrites
def run_ffmpeg(self, path, out_path, codec, more_opts):
@ -298,6 +299,8 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
more_opts += ['-q:a', self._preferredquality]
else:
more_opts += ['-b:a', self._preferredquality + 'k']
if self._preferredvolume is not None:
more_opts += ['-af', 'volume=volume='+self._preferredvolume+'dB:precision=fixed']
else:
# We convert the audio (lossy if codec is lossy)
acodec = ACODECS[self._preferredcodec]
@ -309,6 +312,8 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
more_opts += ['-q:a', self._preferredquality]
else:
more_opts += ['-b:a', self._preferredquality + 'k']
if self._preferredvolume is not None:
more_opts += ['-af', 'volume=volume='+self._preferredvolume+'dB:precision=fixed']
if self._preferredcodec == 'aac':
more_opts += ['-f', 'adts']
if self._preferredcodec == 'm4a':