ffmpeg选项:-acodec libfaac -ab 192k产生150kbit文件?

当我使用ffmpeg转换带有选项的audiofile时

-acodec libfaac -ab 192k 

并使用

 ffmpeg -i 

然后在该文件上获取音频文件信息,它告诉我

 bitrate: 152 kb/s 

这是为什么? 我在这里想念一下吗? 如果我想转换比特率为192kb的文件,它应该在转换后给我192 kbit,不应该吗?

或者:我如何获得192 kbit的速率呢?

我不能提供任何进一步的解释,但有几个地方(例如[ 1 ])提到:

请注意,最大平均比特率(在libfaac的上下文中指定的-ab)是152 kbit / s。 设置此值将被忽略,将使用152 kbit / s。

现在有更好的适用于Linux的aac编码器,如NeroAacEnc或fdkaac,但如果你仍然热衷于使用faac,那么有一个补丁意味着faac可以以192k的比特率进行编码,并且还要高得多。 手刹使用此补丁,可以从他们的网站下载:

http://trac.handbrake.fr/export/3222/trunk/contrib/faac/A00-bitrates.patch

修补Faac,然后使用–enable-libfaac编译FFmpeg,你可以使用Faac获得高比特率的aac文件。 这是一个带有修补的faac的编码示例,直接用faac编码:

 andrew@skamandros~/media$ faac -b 192 -o test.m4a test.wav Freeware Advanced Audio Coder FAAC 1.28 Average bitrate: 192 kbps Quantization quality: 100 Bandwidth: 20872 Hz Object type: Low Complexity(MPEG-4) + M/S Container format: MPEG-4 File Format (MP4) Encoding test.wav to test.m4a frame | bitrate | elapsed/estim | play/CPU | ETA 11720/11720 (100%)| 192.0 | 21.7/21.7 | 12.52x | 0.0 andrew@skamandros~/media$ 

它与FFmpeg一起使用。 但是现在肯定有更好的aac编码器……

对于高和低比特率,您必须指定不同的截止频率。 没有截止频率这个例子导致最大比特率为166kbit / s(+ 2kbit / s多路复用开销):

 ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k out.mp4 size= 308kB time=00:00:15.01 bitrate= 168.0kbits/s 

当我将截止频率指定为采样率的一半时,我可以达到210kbit / s

 ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k -cutoff 24k out.mp4 size= 388kB time=00:00:15.01 bitrate= 211.7kbits/s 

同样,默认值不会低于64.5kbit / s:

 ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k out.mp4 size= 122kB time=00:00:15.01 bitrate= 66.4kbits/s 

但如果我将截止频率设置得很低,我可以得到20kbit / s:

 ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k -cutoff 1k out.mp4 size= 40kB time=00:00:15.01 bitrate= 21.9kbits/s 

在这些例子中,我使用了48kHz的采样率。 当使用较低的采样率时,比特率将/也可以更低。