From b24676ce888c6b597b7e9ca6bb0fca82d71f2ec5 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sat, 14 Jul 2012 19:43:24 +0200 Subject: [PATCH] changed --audio-quality behaviour to support both CBR and VBR --- README.md | 5 +++-- youtube-dl | Bin 40554 -> 40634 bytes youtube_dl/PostProcessor.py | 10 ++++++++-- youtube_dl/__init__.py | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f04b96128..34f5bf723 100644 --- 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 diff --git a/youtube-dl b/youtube-dl index b3e0cd4221b302881fc5ad75746dd5fc9ad0c7fd..67f6f0c36088f5bd7ecebdb56a55865689a6709d 100755 GIT binary patch delta 8505 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

nRrySVTF>p*2W(z_ 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 MIM0}E)*O&206R-wRsaA1 delta 8429 zcmdnBm+93WrVV;oeAXrJ9MVg9f9i5FFf5RoY?CEjZM_wT(xfjbHb-g%Sr2r0qUgwqbYY#I%X5dzhQ2tuU1K3~@ary!b`^ z{r56K=JAsz7}eoLss! zDR)hDbzSiBwC~+scm9-F%{-g7MRk|$!7ry@mKY@o&O6%WGA(I&i%;-Wu5_0yxzl$} zgj@}?$=WWSx4y)7ZbL$}!o5(I?_}}AC+@BM5>Zy6(~ZPW#=Q!fk(0BsRVh_#&EyYmN}pxwo;AN-_U4P= zG7&Ge>ObKsjK7aE?YeSpqo)cpd*<@OzBTf*oTmCsh;c9564o8HbD7@4zmCs*wLL?& zT4h|mA>2Nx{eJT8*Js@h)~~%bb5#?|T;8dIuNc@XKZfmjICoa-YNNS+haBT3ZBuA5 z)Y>a|_{@`?l_EiBx{jF|tP115wJXXh_tZ=dLE$iQtLYu8hibypo?TU+pt4SUOUj=I zGu|rnX@?1PuRL|6%)9P(Uh?WsIffkHyE-@;gl|Rmv3`+v>M*%}zG#ni zW9YGYP2tyGt7`tn7XFa-Y|Id|=zH&R$~nV8+*iMz)|ORtr-j@87QWMkQw$k|wHr*m{} zc6QhYGtr4rs$TLdE~KoGfAVjyj{FIZY_6wskGmEWg$J#@yyP;g@{(;UTAfuKj;-Eh zrV?CR?-k z+;=K^G3P#PgAR@G12=Z~GE|E)Kftxct&^Z{JO<*r=_)JuTi(k2p+*iqb@bmV3{6sI@Y##IGddJQ@Zx6k^^RJ^2%N5;rRH#{y(fwb(Y0T<*%>K5tGq{jYF1JZTDJ^f5;Vx%$jQO$#M1 z1%DB|TjIAT{j6X4?GtzIZ)=@A`%TKDSIXJ5L^MTi$2?h>`0!C+$KBq$vybam?Vr@z zoAHpX{$k>SZ`m^YI{N(bR{>^~ zd>8vK&hhkl9OnFQ_gC#c@oTG(IqtAe?W~^`VY1Y3N$|&-&%D|U=UeZ(bF!R08m|4Z zxBu!5!+k%xe!SD2zN@w3xAFfEjk1^dl&<#a%k@Zziz?4Bo*YX9_U z&kk55X+{^_)(V*0@m(fP$iwWul61`4)iY`re2UZ1?-K3m6Mxk=HEQFA4o9OY-HTjj zyyOb6XFoG9&B|=Ibjdcm#q1KX6AniI?~c64>a%v+vZ8NRbvt!pn)SmcR==;#n2KHZ(Y+r0jG z>E0*jIxWw=k?Gxcr+(Ux1q>ehq_#aRtBb1maM#@?Ate3Lr<99*a<)ItX;vjWh{R6~ zuF+3&hNzDNHV(U$nf=r55A`GAYhQH2y z#wl-d=LGY$69?{_PoMC5;Ww6w`Moc+2_7%%8igGp0+6a9){z;`P<0dD$y2URn_oK12EEO2%Ba!@PQ5MedbN zdRCvtRb-G=#iW$+{E}tJwJRF@t?t3~OTPPL-Mlhy<*%fOO&Qjrwr8fiDwMWbah)ld z{mOy+=O%Fbr`-8JDM~XaN4U{ypWNJUr#volF1{!ubK{@1)C|3y>B_Ymu4Ng^-${x1 zkf8H5Im3G=hw|kDrMJs!pM{&K>0deYR^w#fj_NwE`fVnZO(T~~r@*9Do7OPjCE|M2tY9>o=A z`<72PRi34F)Z_X5xj)*MmFs`d{$IEF&|f7Rj;iBdjm6J~7@m(k(!nr)+9I<#!V9)5 z&iawk@iu9{fZ<#H`k5K~Eat!Y(Ndj%Ug3iOoJ)06R5iukq=vqT-D|G5Xl8NE(wFmM z&-ttjP2@}8wn3Kp@48s)`71u{-+l0sygJ+a&Hqw0Ues2-RkhYTfAmD_wTI&O`IrA^ z4)A7X5n*6p;9#)Gx#rNl`sP<{2?hqM00stb1{sF<_{_Y_lK6PNg38Ity)u)zN<`~L zioK@hcy2SBwsdNWx~A)KCeH~n*%rn#`8~f}yC?tM>^swUrs(f+*X0@5jQ@nBzSk?y z&XnSP(C)VQVus0=NB-5R^WO3vs_;L`uQXTuvP#}wfxGK>CC%tLRB=f-)$mo&oAcB`=KJg>1RRIJ>jp;I&SsXZ!X(=FJWDbbp#b?;>7td$1(A#Pt@*Z&D$ zmQ=`F>lV)>u`7E19uE_-q!pS^No>&pAj8m)ZV4@EAwI3#MIeN-%w&-kY9 zBt75y$?rSY-!*%1I-B|3+_^rYsba?e5+qc2ek!zJNYE;d6q(6?=}kxMjQ#pr_j11< z=`Q)lHI4U5YkeYv!p{(~%MN@+e_n<^Vwsb;tj*-QsQiTuH`;HV*krJLn_q3veCyTQ zB;T-&S**$64%n3QNQZ>$u0FsPg(CT`F=&fi}i@KL+*Oz zJ;xibiwQLxJm&iM{eyf)#qX=-ZmFDK=*9hTe(ao-NT%+0k7m_nmbaYR^wdcs*|H&( zy(+V0(ZU6B#ebM1EjE9&K}3@fI=dVEfPLAa?q|T=75hJ*N68VGGiJ&HCJbQtCtM zn(D(wrvn_dGPjq7Oj&)e*yP>LTi^CC)!=*PHD6o$cm49yub=Kd=W%%1!}^TbJAzC; z^YPAZ-`o04sUhdB#kQW`^0^?H>y zPr7usyxQ%xxyciCs-8c8(0`SbQM%sco!bGC(?efLU2A|rlswzjSR z!i%R&dG$Q2^Y`x2cxLfPrcdHttoxIr9AXz2o~|sbbSjCczvyc!P$-CfF35?rUcGVf^z-J&!x9)V25De^#$rw8j6P>h3Uy z^#4L)RySIi{<6;GN)a|@;5xou=K9UWpNv}PHM4v#WiewHs}gE#59X}Bxn)a?Be(bj zHK+HFC3Cm^x+5^>sB(QoRn`|ig*lgu8q{i6m1Ri3=x9ACqZe@NO4)`SU88%dtPRiq z33B~!>%JlpqUdtIl-D}K!t92PMoV2s#G(Te9_)3Q9)Bn6{2#t@?LzMV2j0~^7u4@4 z;CX&#k^R(<8js2xPAFVsx4Q99cEbb@qi~y?6#dS3^nswke!)47;m#E;4_%rDZnXn=`Gma<5*>Jo>KB zE0sCq%Fk&`+ul?^vYInBFxaQ;60@aLedf|O-LzBDJbFAqyJbCvOI{eZhW%Q2d|#$v z>)a{R>K4x9V$9OK@Y7+7_wBj|+s+!TG|lhaDtE^6hRkiVvX2vYCz$WP=gfC+$1Cv- z&dldI=FD*Jzxivy?&RBrnSKuq%r5^uBv_jIU-7%VU($;;t1oDtG(VJ(cX&= zR3!uJU&lqs-MF42DcZhVNak^9f)U$f#xHpy=NxicTC81Hsd4R{C|C9V{JHaaIxM$! zKXE0A?c-8w{E_!RuA%F$(qaKY#P>7jx(My>iav z+1WKO9H-eVI?7up%ys;hRIat7fp&t)lwQqTm-at@)$A8n^Sd(5@%vyM#ABx!qiGh= z%FSMQ_@u`1_-Bs{H5X5Ous20;eewnA34tsuv;7#~Etw@08{qr4z5n@o|8=XDuKmd( znH3XLvw-1q^z28s>Up+rcVN+bWMtz~$0qe4KdCb%Zb!kc*B=hp8Oj>r{Ry_icx?y%Q_KQm{oP>(5b?v#CQX*DDEo71g(QWi6R@qA&EQ(MRG zlCIXxb>8{EO~8YiQs2uzFWodOs(!V*rsqvY!^Kcbw)|5}E)g*^`6}zzO-xbW_cHN{ z;MA(e4M%&_eZu>-qF6sa{(ACi`{K{S+@5^xo}6q4jr1!_zWxh($1nTwxXS9+YnO)p zjg^ay|6fyBy63|D)O#1=&-^`_;N3p^yQ_t`@#32z4@=|)JWcMH+|YR{^f~bRp;rON zcv`!sC2Ta{aaV1-+`anq;;iOJs`aaF_a+(z`F>x&urxugbi22&u3S*p(R!Wl za4L7L*&z_{dpW(vo*{;t-1m|=O}rur|d{9?oQ%LPWR=e@RPq+RB$ zU$wTq_|z>I=>yw}T%LK=^(Y(tPB-1|mbCBQ+k-l<7l_|{@r}(gaLd}+>9gnZJz_b1 zGVSW!tCmT}g*_OT2+oN5_At;Th~`g9pr>)QJd_1Q=dUn6O=;E!0A~UuaInMle zXYv1K-jS*)Hu}qc{o;|i{QGTSSz-M4+3(XP9JsrFhq>Zix#KNMO#@xGpIOvvp(e4q zONT*uci+5~j-B<(U2Tk;x_8@hgf?C{cOgyUSoSTJC7*U|n=Q^{*qZFm!V7ndCi&L@f$-KpeG;eIoF!^UaXSJ`sU-zj;6EoN@Hu#v&i%*c*amp&J)Eh-WV zw48H0$w=hgAcnHDf@z1XTIUIU*~G8Jr3Q<|n(_Ea`a%PKz2%YE&k2v52-=fSwh z?d~Ol?IKe+E!niMl!bnuSh#|VCnAUWz$PmJlehhjmPr}~Pds+X@ZaKKuZ+DGWpMId zQQwcA6OHV1v`;O)dHnx8#`ETfK$ z+8dJU{9=~-ou%GcVqC2)AF^~lTc{ytB7PS9yZXG6v(xjj0D z-`uYXu`P}|)U$ktjYr@t@8bs->+cOe=s2@}&0(Ws4|UidOVo&+a*L3d^e97V?Tbbx zZ<*N%SG-#0EQ#n2FwWe})OaXCulZc@nVr#}uAPotwer#CGYL!Awl+j>zVm1W$896` z@a&?6KYX;l27a(S)g*hqt6=Bzkoi*kBv)353oKx)(0?eycYIla%%M3xqBB)u&fjX8 zcwtA3`-J)(2iI=x^uK!kqx;HZT>V#U=;b-`Q?9lBqcuRg|F>JdQ*m3)YRKl#Q1=kk)iuy$CNZ8n;e!g2UFlnn^ z>z21ntmR^#GmbruT%{&qJB>eL_O!DVJQ;>1jUm6bzKuI(R?l2@<<~5Wg@s%Vxd)@a zv1zThytCWm#@miq&GsLU6;HAy_U%7=DgVXs?Lu`7Tkg95-0-{Eq0Vr|Y%z1Dt$~}l zUdG$Y?X}k$Q=7t7AEe9NdUWeM4PpX;e@zRY*8 zrLn~`;ulMt*#70r`vWfX>hE+WU-)!cUtf^bvXdd5@vz%g#TzN? z=^V9Q=^ws^Mpv7*@0}WPI9T_Msn0iujeW;Cx2;WFef;WmgIPNdOZP6n$g=p_e%9e2lTY`N zWqJHn<+`W3nU9{+SncjTv+m2pXUfW_!qnYo_H?ZhQ#WmzW@)~0N?@Dhmhc$vxiK4f zPfEnTGhmypA{QhP(s=63^t%_?*3O-+d24UIplrwiyP{ne_^WQ8SzvkkjCo;z?USRe zf;GENE$vXa|Cx>DMBihvWzWOKZY|yS$;SHQ?YUh%aTV7TVzp=TF6UkJ(}rEzY)bO) zTAjlgcHRMh+P;{1s!d!~fA#jBIcly(8XtYz-@5rtUh*w)ebJfovKqd}F8DnS;5~5D z=>Gb}27Bv&rtGt8>`sifnIC+t|7Q)em+h?mjZ4|h4h#5yTIeIo`H)-PH1PeY$RyV< z+@{HbG3u!{Qf{7>Mj|!(pTciv{|M3E!`90%o8i@}N9GgHeAe+yn|9N|ec?h=?)D#d zZ|zLJ>+IV9>&KmrFL{Bky-CHFbW>{*-JO;tSYFaO68ng^{^zp#iILvw@y{Heep!_C zaI2^7v4Pk%=44e4Z2c7mtPcIs+;uxmQ#!6(kbRUPnfTeGcoCU z8F_eW?X?C4CL2*3>&?4kCYkpZU9PjKjMO=oT=M?nF^*HhD^qTGC>;D|>A;eH!tVFs zpKIH**H*hos?EsFVSH0x{Ca(1<>xfcZ-?GJT`OyKZCYf?rzyVczwOALH2dt6nU#?# zHa0D1?{)+imTKKyh{oD?p-&4Q4cH{TMvTqFh-|nuzc4^AT zqd(U zNHxDBby@nH(Dn0gZBMNdvUlkOj zx~4T^Vb0sz4$5Yed7NtYDF#mJ&dy=kukB)dPEs>Z@n-7VtUx~H2RbW@=Y}Rtnq6G? z)`C-h!-X%KpQr7Vh&lc1VeTT%i#HCjHKd*D6YRL%+4n@R{!8N1gru2iU)1FCIsGKc zmJ0aX2ySnfeJMdr_Rm`OYaeIu$iBF-w)+lKq3a^;^(==>r#D8uRX!YJ z`GcXua?y(`7b0g~{&w2mRL~ziUl0BhZf&>K6P_#BB5nP~lBtNPDDC|2 zs}C(6dU~2mZ2lts=b)p7QjNE{UH_+pyQ7!yk>R<#cK3z?_9Iu{+w|nWoe&(oozrgb zvyGk;_WrV4A^+}$$@#du96<~3uB|GS_NZ^2Q*h<-tpn!2-B>M-AN{-Ly=vaMcJGqM zSNLwm-Pvi<=R8y0)4A2t)OP#tRUN*y>-mmpZhNV|*R?`)wshrt-R78$w^X|C9g>hy z>wEl7%2|nRcHmO)TrO78YeqBA@LX9D7PRcq|HoG>noHawPOn-cYTP^H&Yxp(Pyb{I zZJeQX?+;^^y-kuX9a`~J6!pxks-KV<$g+2XwbJ-p1pYIMm2;csuFX!~O z?YUKNOLE#X0G)F4oNadAifyg8!_Hn?5`N~}rOQuEj&!X()nE2g zXR2?FuJO$rCcTL_=3KX^pS66^3(58Kj^Bvfu5!2Sx6x6v#{!kNrY(6h`(?DwA}zK3 zKAT_q>-^d+eeOaDS8`8Q{nm%miY~lkajiCBxw?3QL!60|6=U7QM#kAkPdJtC-yk5^ zsP{pQYx&Zyg+IQTm#xdHXVHv*%l7Kn2es8)>OYq+uUNYB|Dj8QpW@=eqIvV`Z4Mt^ z_Wg$7G{^W^RywmT34U8PiTiE(?8MjhdzRcUvr@nPs!}61FSPzxrp>F6>0UpU^KF>< zf8~>`D1o-b7kA?y20FI=m2@tgrIsjJ@8FT$9N8l%h`!*UVy-3&Xu-i`|GCmym?Ps73?RVBz`(Gj uv9*{1K2AQlbDr$vgt=UkQ+tH?5Q_dbe(j!YIM1JP`sBuW#%x}5K)M0=jyv%H diff --git a/youtube_dl/PostProcessor.py b/youtube_dl/PostProcessor.py index 527dc3a3d..375da1aa3 100644 --- a/youtube_dl/PostProcessor.py +++ b/youtube_dl/PostProcessor.py @@ -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': diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index f10822db1..2bc9a3fa6 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -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')