了解sox的进度细节

时间:2013-05-04 13:05:31

标签: windows sox

我正试图修剪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。也许这些数据与输出文件大小无关?

如何正确推断编码任务的进度?

1 个答案:

答案 0 :(得分:1)

你是对的,Out值不是文件大小,而是样本数。它大约是Duration字段中提到的11644870个样本:大约264秒,每秒44100个样本。对于未压缩的输出,文件大小大部分与采样数成比例(例如,16位立体声,每个采样4个字节,加上标题大小)。对于压缩输出,关系不太严格。

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

另请注意,SoX的工作原理是首先将输入转换为内部(PCM)表示,然后对其进行处理,然后将其新转换为输出格式。由于您正在处理已经有损压缩的文件,因此声音质量可能略有下降,如果您重新处理结果(generation loss),则会更多。