From c3029c4468a949b55aad57eb0ddee6d7fd8766a2 Mon Sep 17 00:00:00 2001 From: Hattshire Date: Tue, 26 Feb 2019 16:31:00 -0300 Subject: [PATCH] Handle Opus bitrate when quality is specified instead of bitrate --- youtube_dl/postprocessor/ffmpeg.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 5bcb00ac0..90e421d9b 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -307,6 +307,26 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): # The opus codec doesn't support the -aq option if int(self._preferredquality) < 10 and extension != 'opus': more_opts += ['-q:a', self._preferredquality] + else if int(self._preferredquality) < 10: + # Handle opus quality/bitrate using Xiph.org's Recommended Settings + if int(self._preferredquality) == 9: + more_opts += ['-b:a', '450k'] + else if int(self._preferredquality) == 8: + more_opts += ['-b:a', '256k'] + else if int(self._preferredquality) == 7: + more_opts += ['-b:a', '128k'] + else if int(self._preferredquality) == 6: + more_opts += ['-b:a', '96k'] + else if int(self._preferredquality) == 5: + more_opts += ['-b:a', '64k'] + else if int(self._preferredquality) == 4: + more_opts += ['-b:a', '32k'] + else if int(self._preferredquality) == 3: + more_opts += ['-b:a', '24k'] + else if int(self._preferredquality) == 2: + more_opts += ['-b:a', '10k'] + else: + more_opts += ['-b:a', '6k'] else: more_opts += ['-b:a', self._preferredquality + 'k'] if self._preferredcodec == 'aac':