0

mp3 ファイルから raw pcm ファイルへのデコード、または raw pcm から mp3 へのエンコードに lame を使用しました。

問題は、1 つの test.0.pcm ファイルを使用して、エンコードとデコードを何度も行う場合です (0.mp3、1.mp3、2.mp3、... および test.1.pcm、test.2. pcm ....)、ただし、すべての .pcm ファイルまたはすべての .mp3 ファイルのサイズは同じままですが、内容は異なります。これらのオーディオ ファイルを聞いてみたところ、99.mp3 のボリュームは 1.mp3 よりもはるかに小さいことがわかりました。

私が使用するスクリプトは次のようなものです。

 #!/bin/bash
 num=$1
 last=0
 now=1
 for((i=0;i<num;i++));do
     lame -r -b 64 -s 16000 -m m test.$last.pcm $last.mp3 
     lame --decode --mp3input -t -m m -s 16000 $last.mp3 test.$now.pcm 
     last=$now
     now=$[now+1]
 done

元の test.0.pcm には 1 つのチャネルしかなく、サンプリング周波数は 16k です。

一部のログは次のようになりますが、Replay Gain を除いてすべて同じです。

input:  97.mp3  (16 kHz, 1 channel, MPEG-2 Layer III)
output: test.98.pcm  (16 bit, Microsoft WAVE)
skipping initial 1105 samples (encoder+decoder delay)
skipping final 47 samples (encoder padding-decoder delay)
Frame#    49/49      64 kbps

Assuming raw pcm input file
LAME 3.100 64bits (http://lame.sf.net)
polyphase lowpass filter disabled
Encoding test.98.pcm to 98.mp3
Encoding as 16 kHz single-ch MPEG-2 Layer III (4x)  64 kbps qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
    49/49    (100%)|    0:00/    0:00|    0:00/    0:00|   88.200x|    0:00
----------------------------------------------------------------------------------------------------------
   kbps       mono %     long  %
   64.0      100.0       100.0
Writing LAME Tag...done
ReplayGain: +46.1dB

ReplayGain が常に増加していることに気付きますが、mp3 のエンコード方法については知識がないため、これが原因かどうかはわかりません。

4

1 に答える 1

4

MP3 は非可逆コーデックです。別の世代をエンコードするたびに、品質が低下します。

于 2017-11-23T18:40:15.493 に答える