2013-05-04 54 views
0

我試圖從mp3文件修剪沉默,並解析進度的詳細信息:瞭解SOX的詳細進展情況

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

你是對的,Out值不是文件大小,而是樣本數。這大約是Duration字段中提到的11644870個樣本:大約264秒乘以44100個樣本/秒。對於未壓縮輸出,文件大小大部分與樣本數量成正比(例如,立體聲爲16位,每個樣本4個字節,加上標頭大小)。對於壓縮輸出,這種關係不太嚴格。

雖然Out值不一定是一個很好的進度指標。在你的情況中,由於反轉,SoX在開始寫任何東西之前已經處理了所有的音頻。

還要注意,SoX首先將輸入轉換爲內部(PCM)表示,然後對其進行處理,然後將其轉換爲輸出格式。由於您正在處理已經被壓縮的文件,聲音質量可能會受到一些影響,更重要的是,如果您重新處理結果(generation loss)。

+0

謝謝。這就是我計算最終進度的方法:'In_Value * 0.5 +(Out_Value/samples)* 0.5'。 – iTayb 2013-05-04 20:37:34