Хотя технические ограничения (упомянутые в других ответах) на сжатие файлов MP3 с помощью стандартного сжатия или перекодирования с более низкой скоростью передачи битов верны, ваша цель состоит в том, чтобы хранить 30 секунд данных в формате MP3. Предполагая, что вы можете применить это к своим пользователям, у вас должно быть все в порядке, не применяя дополнительные методы сжатия, если битрейт MP3 равен 256 Кбит / с с постоянной битрейтом (CBR) или ниже. На 256 кбит CBR 30 секунд аудио потребует:
(((256 * 1000) / 8) * 30) / 1048576 = 0.91MB
Максимальный стандартный битрейт составляет 320 Кбит, что соответствует 1,14 МБ, поэтому вам придется использовать 256 или меньше. Наиболее часто используемый битрейт в дикой природе составляет 128 кбит.
Существуют дополнительные накладные расходы, которые увеличивают конечный размер файла, такие как теги ID3 и кадрирование, но вы должны быть в порядке. Если нет, уменьшите до 224 кбит как максимум (30 секунд = 0,80 МБ). Существуют и другие сложности, такие как кодирование с переменным битрейтом, размер файла которого не так предсказуем, и я их игнорирую.
Таким образом, ваша проблема больше не в том, как сжимать файлы MP3, а в том, чтобы гарантировать, что ваши пользователи знают, что они не могут загружать более 30 секунд, закодированных при 256 Кбит / с, и как применять эту политику.