changed --audio-quality behaviour to support both CBR and VBR

This commit is contained in:
Filippo Valsorda 2012-07-14 19:43:24 +02:00
parent cca4828ac9
commit b24676ce88
4 changed files with 13 additions and 6 deletions

View file

@ -90,8 +90,9 @@ which means you can modify it, redistribute it or use it however you like.
ffmpeg or avconv and ffprobe or avprobe) ffmpeg or avconv and ffprobe or avprobe)
--audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", or "wav"; --audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", or "wav";
best by default best by default
--audio-quality QUALITY ffmpeg/avconv audio bitrate specification, 128k by --audio-quality QUALITY ffmpeg/avconv audio quality specification, insert a
default value between 0 (highest) and 9 (lowest) or a
specific bitrate like 128 (default 5)
-k, --keep-video keeps the video file on disk after the post- -k, --keep-video keeps the video file on disk after the post-
processing; the video is erased by default processing; the video is erased by default

Binary file not shown.

View file

@ -142,6 +142,9 @@ class FFmpegExtractAudioPP(PostProcessor):
extension = 'mp3' extension = 'mp3'
more_opts = [] more_opts = []
if self._preferredquality is not None: if self._preferredquality is not None:
if int(self._preferredquality) < 10:
more_opts += [self._exes['avconv'] and '-q:a' or '-aq', self._preferredquality]
else:
more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality] more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality]
else: else:
# We convert the audio (lossy) # We convert the audio (lossy)
@ -149,6 +152,9 @@ class FFmpegExtractAudioPP(PostProcessor):
extension = self._preferredcodec extension = self._preferredcodec
more_opts = [] more_opts = []
if self._preferredquality is not None: if self._preferredquality is not None:
if int(self._preferredquality) < 10:
more_opts += [self._exes['avconv'] and '-q:a' or '-aq', self._preferredquality]
else:
more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality] more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality]
if self._preferredcodec == 'aac': if self._preferredcodec == 'aac':
more_opts += ['-f', 'adts'] more_opts += ['-f', 'adts']

View file

@ -296,8 +296,8 @@ def parseOpts():
help='convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)') help='convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)')
postproc.add_option('--audio-format', metavar='FORMAT', dest='audioformat', default='best', postproc.add_option('--audio-format', metavar='FORMAT', dest='audioformat', default='best',
help='"best", "aac", "vorbis", "mp3", "m4a", or "wav"; best by default') help='"best", "aac", "vorbis", "mp3", "m4a", or "wav"; best by default')
postproc.add_option('--audio-quality', metavar='QUALITY', dest='audioquality', default='128K', postproc.add_option('--audio-quality', metavar='QUALITY', dest='audioquality', default='5',
help='ffmpeg/avconv audio bitrate specification, 128k by default') help='ffmpeg/avconv audio quality specification, insert a value between 0 (highest) and 9 (lowest) or a specific bitrate like 128 (default 5)')
postproc.add_option('-k', '--keep-video', action='store_true', dest='keepvideo', default=False, postproc.add_option('-k', '--keep-video', action='store_true', dest='keepvideo', default=False,
help='keeps the video file on disk after the post-processing; the video is erased by default') help='keeps the video file on disk after the post-processing; the video is erased by default')