Это связано с тем, как работает кодирование MP3 (или собственно кодирование и декодирование). Смотрите технический FAQ:
Почему декодированный MP3 длиннее оригинального файла .wav?
Потому что LAME (и все другие кодировщики на основе MDCT) добавляют заполнение в начало и конец каждой песни. LAME встраивает количество отступов во вспомогательные данные первого кадра файла MP3. (Тег LAME INFO).
Продолжение:
Все протестированные мной декодеры вводят задержку в 528 сэмплов. То есть после декодирования mp3-файла на выходе будет 528 сэмплов нулей, добавленных вперед. Это связано с тем, что стандартные процедуры MDCT/filterbank, используемые ISO, имеют задержку выборки 528. Можно было бы написать подпрограмму MDCT/filterbank с задержкой 0 отсчетов (см. Описание подпрограммы Takehiro MDCT/filterbank, используемой в кодировке LAME ниже), но я не знаю, кто это сделал.
Кроме того, из-за перекрывающейся природы кадров MDCT, первая половина первой гранулы (1 гранула = 576 выборок) не имеет предыдущего кадра для перекрытия, что приводит к ослаблению первых N выборок.
Это становится более техническим, если вы читаете дальше, но это должно резюмировать проблему.