changed --audio-quality behaviour to support both CBR and VBR
authorFilippo Valsorda <filippo.valsorda@gmail.com>
Sat, 14 Jul 2012 17:43:24 +0000 (19:43 +0200)
committerFilippo Valsorda <filippo.valsorda@gmail.com>
Sat, 14 Jul 2012 17:43:24 +0000 (19:43 +0200)
README.md
youtube-dl
youtube_dl/PostProcessor.py
youtube_dl/__init__.py

index f04b96128de7effb5e2d19f06642398403425bcd..34f5bf723059e57057acbe881b53272a879d6341 100644 (file)
--- a/README.md
+++ b/README.md
@@ -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)
     --audio-format FORMAT    "best", "aac", "vorbis", "mp3", "m4a", or "wav";
                              best by default
-    --audio-quality QUALITY  ffmpeg/avconv audio bitrate specification, 128k by
-                             default
+    --audio-quality QUALITY  ffmpeg/avconv audio quality specification, insert a
+                             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-
                              processing; the video is erased by default
 
index b3e0cd4221b302881fc5ad75746dd5fc9ad0c7fd..67f6f0c36088f5bd7ecebdb56a55865689a6709d 100755 (executable)
Binary files a/youtube-dl and b/youtube-dl differ
index 527dc3a3d73d4c671c922dca261046390117bdce..375da1aa3f08cf0fb9d9886ee1b6d4308d18c763 100644 (file)
@@ -142,14 +142,20 @@ class FFmpegExtractAudioPP(PostProcessor):
                                extension = 'mp3'
                                more_opts = []
                                if self._preferredquality is not None:
-                                       more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality]
+                                       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]
                else:
                        # We convert the audio (lossy)
                        acodec = {'mp3': 'libmp3lame', 'aac': 'aac', 'm4a': 'aac', 'vorbis': 'libvorbis', 'wav': None}[self._preferredcodec]
                        extension = self._preferredcodec
                        more_opts = []
                        if self._preferredquality is not None:
-                               more_opts += [self._exes['avconv'] and '-b:a' or '-ab', self._preferredquality]
+                               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]
                        if self._preferredcodec == 'aac':
                                more_opts += ['-f', 'adts']
                        if self._preferredcodec == 'm4a':
index f10822db191dc751bc567983bb5750ecf97d2195..2bc9a3fa6ec1d21175442e83d9b1514371d0414f 100644 (file)
@@ -296,8 +296,8 @@ def parseOpts():
                        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',
                        help='"best", "aac", "vorbis", "mp3", "m4a", or "wav"; best by default')
-       postproc.add_option('--audio-quality', metavar='QUALITY', dest='audioquality', default='128K',
-                       help='ffmpeg/avconv audio bitrate specification, 128k by default')
+       postproc.add_option('--audio-quality', metavar='QUALITY', dest='audioquality', default='5',
+                       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,
                        help='keeps the video file on disk after the post-processing; the video is erased by default')