A FAQ técnica do LAME tem algumas informações relevantes. Aqui estão alguns trechos:
Why does LAME add silence to the beginning each song?
This is because of several factors:
Decoder delay at start of file:
All decoders I have tested introduce a delay of 528 samples. That is, after decoding an mp3 file, the output will have 528 samples of 0's appended to the front. This is because the standard MDCT/filterbank routines used by the ISO have a 528 sample delay.
Furthermore, because of the overlapped nature of MDCT frames, the first half of the first granule (1 granule=576 samples) doesn't have a previous frame to overlap with, resulting in attenuation of the first N samples.
Encoder delay at start of file:
ISO based encoders (BladeEnc, 8hz-mp3, etc) use a MDCT/filterbank routine similar to the one used in decoding, and thus also introduce their own 528 sample delay. A .wav file encoded & decoded will have a 1056 sample delay (1056 samples will be appended to the beginning).
Starting with LAME 3.55, we have a new MDCT/filterbank routine written by Takehiro Tominaga with a 48 sample delay.
Consulte o FAQ técnico do LAME para obter respostas adicionais relacionadas e mais informações detalhadas.
Algumas opções que não são boas, mas podem fazer o trabalho:
-
Você precisa usar o MP3? Você pode re-output seus arquivos para um formato diferente, como PCM ("wav")? Observe que simplesmente recodificar os arquivos MP3 existentes em outro formato preservará o atraso.
-
Você pode usar o
afade
filtro de áudio para adicionar um fade out / fade in por seção, ou oatrim
filtro de áudio para possivelmente tornar as lacunas menos abruptas. No entanto, a filtragem requer recodificação.