Audio sox-如何创建比特率为16kbps的mp3文件

Audio sox-如何创建比特率为16kbps的mp3文件,audio,mp3,sox,transcoding,libsox,Audio,Mp3,Sox,Transcoding,Libsox,当前使用的命令是 `sox input.wav -G -t mp3 -r 16k test.mp3` 但这是创建一个比特率为24.0 kbps的文件 如何使输出文件的比特率达到16.0 kbps?在中,您会发现它是-C选项。下面我引用整个章节,因为你可能会发现它很有趣 但是,如果我调用sox test.wav-C 16.01 test.mp3我的测试文件(48kHz/16位)将转换为32kbps。如果我调用lame test.wav-b 16-q 0 test.mp3,我会得到16kb

当前使用的命令是

    `sox input.wav -G -t mp3 -r 16k test.mp3`
但这是创建一个比特率为24.0 kbps的文件

如何使输出文件的比特率达到16.0 kbps?

在中,您会发现它是
-C
选项。下面我引用整个章节,因为你可能会发现它很有趣

但是,如果我调用
sox test.wav-C 16.01 test.mp3
我的测试文件(48kHz/16位)将转换为32kbps。如果我调用
lame test.wav-b 16-q 0 test.mp3,我会得到16kbps,但test.mp3会转换为8kHz的采样器。但是如果我真的想用
lame test.wav-b 16-q 0保持48kHz——对48000 test.mp3重新采样,我也会得到32kbps。所以我们看到,在高采样器和高压缩比之间存在折衷

MP3压缩音频;MP3(MPEG第3层)是受专利限制的音频和视频压缩MPEG标准的一部分。它是一种有损压缩格式,可以在几乎没有质量损失的情况下获得良好的压缩率

由于MP3已获得专利,SoX无法在不产生专利持有人费用的情况下使用MP3支持进行分发。需要支持MP3的SoX的用户当前必须从源代码编译和构建带有MP3库(LAME和MAD)的SoX,或者在某些情况下,获取预构建的动态可加载库

当读取MP3文件时,虽然仅向用户报告16位,但最多可存储28位精度。这允许写入16位输出文件的默认行为。用户可以为输出文件指定更高的精度,以防止丢失此额外信息。MP3输出文件在编码时将使用高达24位的精度

MP3压缩参数可以使用SoX选择−C选项如下(请注意,当前语法可能会更改):

LAME编码器的主要参数是比特率。如果−C值是一个正整数,以kbps为单位表示比特率(例如,如果指定128,则使用128 kbps)

第二个最重要的参数可能是“质量”(真正的性能),它允许平衡编码速度和质量。在LAME中,0指定最高质量,但速度非常慢,而9选择较差质量,但速度很快。(5为默认值,2为高质量编码的最佳折衷方案。)

因为−C值是一个浮点数,小数部分用于选择质量。128.2选择质量为2的128 kbps编码。这种方法有一个问题。我们需要128指定默认质量的128kbps编码,所以0表示使用默认值。您必须使用.01(或.99)来指定最高质量(128.01或128.99),而不是0

LAME使用比特率指定恒定比特率,但使用可变比特率(VBR)可以实现更高的质量。VBR质量(实际大小)使用0到9之间的数字进行选择。对于高质量、较大的文件,请使用值0;对于质量较低的较小文件,请使用值9。4是默认值

为了将VBR的选择压缩到−C值浮动我们使用负数选择VRR-4.2将选择高质量(速度)的默认VBR编码(大小)。一种特殊情况是0,它是有效的VBR编码参数,但不是有效的比特率。压缩值0始终被视为高质量vbr,因此-0.2和0.2都被视为最高质量vbr(大小)和高质量(速度)


获取错误“sox警告格式:尝试时mp3无法编码为16位”-b 16“这是正确的。MP3没有相关的位深度。注意:在sox
-b
中代表位深度,在lame
-b
中代表位速率!(如果您不确定差异:vs.)