我在 macOS Sierra(10.12.2)上使用 FFmpeg 版本 3.2.2 和 LAME 3.99.5,并且我有这个命令将 FFmpeg 输出(来自 FLAC 文件)传输到 LAME 以编码为 MP3:
ffmpeg -y -v quiet -nostdin -i test.flac -b:a 320k -ac 2 -ar 44100 -f s16le -acodec pcm_s16le - | \
lame --quiet -r -m s --lowpass 19.7 -V 3 --vbr-new -q 0 -b 96 --scale 0.99 --athaa-sensitivity 1 - test.mp3;
它运行良好,我对结果很满意,但是当我-v quiet
从管道的 FFmpeg 部分删除设置时 - 这样我就可以看到发生了什么 - 我注意到输出中出现以下内容:
Stream mapping:
Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native))
size= 81858kB time=00:07:55.18 bitrate=1411.2kbits/s speed=41.2x
请注意,比特率是在转换过程中显示的,而不是设置的选项1411.2kbits
中的 320k 比特率。-b:a 320k
这是预期的行为吗?由于比特率设置被忽略,-b:a 320k -ac 2 -ar 44100
当使用 RAW 输出管道输出时,整个音频参数块 ( ) 是否都是多余的?-f s16le -acodec pcm_s16le
答案1
这是预期的行为吗?
-b:a
是的,输出未压缩格式时会忽略比特率( )。生成的比特率为:
sample rate * bits per sample * number of channels = bitrate
因此,就你的情况而言:
44100 * 16 * 2 = 1411200 bits/s or 1411.2 kilobits/s
-b:a 320k -ac 2 -ar 44100
当通过 RAW 管道输出时,整个音频参数块()是否是多余的
比特率是多余的。如果您出于某种原因想要更改通道数或采样率,您可以保留-ac
并-ar
(但您可能永远不需要这样做)。