Обычно это происходит при воспроизведении дорожки с неправильной частотой дискретизации.
Большинство (все, что я видел) кодировщики SHOUTcast / Icecast (идущие прямо из файлов) прекрасно сжимают для MP3, но предполагают фиксированную частоту дискретизации, для которой они настроены. Как правило, это будет 44,1 кГц. Если вы добавите дорожку с частотой 48 кГц или дорожку с частотой 22,05 кГц, они будут воспроизводиться на разных скоростях, вызывая всевозможные случайные проблемы с потоком.
Проблема достаточно легко проверяется. Просто создайте файл с другой частотой дискретизации и протестируйте его. Я подозреваю, что вы будете воспроизводить проблему. Если это так, то, насколько мне известно, нет способа обнаружить это, поскольку ваш поток на самом деле не поврежден ... он просто звучит неправильно. Вам придется сканировать все ваши файлы на частоту дискретизации. FFMPEG в сценарии должен помочь вам в этом.
Теперь, если проблема на самом деле в поврежденном потоке MP3, значит, у вас проблемы с кодировкой. Я подозреваю, что простая замена любой библиотеки DLL или модуля, который вы используете с последней стабильной версией LAME , поможет.
Чтобы обнаружить поврежденный поток MP3, ваш кодировщик должен использовать CRC. Если вы включите его, вы сможете прочитать заголовки каждого кадра, чтобы найти CRC, а затем запустить его на аудиоданных. Если вы получили ошибку (или несколько кадров с ошибками), вы можете вызвать предупреждение.
Вы можете найти информацию о заголовке потока MP3 здесь:
http://www.mp3 -tech.org / программист / frame_header.html