1

我正在尝试从文件中删除静音mp3,并解析进度详细信息:

G:\testing\test>sox -S trim.mp3 trim2.mp3 reverse silence 1 0.1 0.1% reverse

Input File     : 'trim.mp3'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:04:24.06 = 11644870 samples = 19804.2 CDDA sectors
Sample Encoding: MPEG audio (layer I, II or III)

In:100%  00:04:23.96 [00:00:00.09] Out:11.6M [      |      ] Hd:0.0 Clip:400
sox sox: trim2.mp3: output clipped 400 samples; decrease volume?
Done.

G:\testing\test>

我应该能够解析这些数据,同时将Out:11.6M数据作为我的进度,但是这个文件的文件大小实际上是4.03MB. 也许这些数据与输出文件大小无关?

如何正确总结编码任务的进度?

4

1 回答 1

1

您是对的,该Out值与文件大小无关,而与样本数量有关。大约是该领域中提到的 11644870 个样本Duration:大约 264 秒乘以每秒 44100 个样本。对于未压缩的输出,文件大小主要与样本数量成正比(例如,16 位立体声,每个样本 4 字节,加上标题大小)。对于压缩输出,关系不那么严格。

但是,该Out值不一定是一个好的进度指标。在您的情况下,由于反转,SoX 在开始编写任何内容之前已经处理了所有音频。

另请注意,SoX 的工作原理是首先将输入转换为内部 (PCM) 表示,然后对其进行处理,然后将其重新转换为输出格式。由于您正在处理已经有损压缩的文件,因此音质可能会受到轻微影响,如果您重新处理结果(生成损失),则更是如此。

于 2013-05-04T17:33:52.347 回答