Спор «FLAC или MP3» обычно идёт на словах: один слышит «воздух», другой не слышит ничего. Я взял один трек, сжал его шестью способами и измерил, что изменилось в файле.
MP3 128 кбит/с обрезал всё выше 16,5 кГц, MP3 320 дошёл до 20,1 кГц. После десяти пересохранений MP3 128 потерял больше 10 дБ. FLAC после повторного сжатия совпал с оригиналом до бита. Под катом пять замеров с графиками, расчёт для слепого теста и таблица, какой формат для чего брать.
Что сравниваю
Трек: COOL&CREATE, «Help me, ERINNNNNN!!», издание 2024 года. Это аранжировка музыки из Touhou: быстрая электроника с вокалом, плотная и громкая. Длина 5 минут 16 секунд, 44,1 кГц, 16 бит, стерео. Это параметры обычного компакт-диска.
Кодировщик MP3: LAME 3.100, настройки по умолчанию.
ffmpeg -i track.flac -c:a pcm_s16le orig.wav # несжатый звук lame -b 128 orig.wav cbr128.mp3 # постоянные 128 кбит/с lame -b 320 orig.wav cbr320.mp3 # постоянные 320 кбит/с lame -V2 orig.wav v2.mp3 # переменный битрейт lame -V0 orig.wav v0.mp3 # переменный, выше качество
-V0 и -V2 задают качество, а битрейт кодировщик подбирает сам для каждого отрезка. Вики Hydrogenaudio даёт для них средние 245 и 190 кбит/с. На моём треке вышло 261 и 184.
Замер 1. Размер

Формат |
Размер |
Средний битрейт |
Доля от WAV |
|---|---|---|---|
WAV |
55,7 МБ |
1411 кбит/с |
100% |
FLAC |
43,0 МБ |
1090 кбит/с |
77% |
MP3 320 |
12,6 МБ |
320 кбит/с |
23% |
MP3 V0 |
10,3 МБ |
261 кбит/с |
19% |
MP3 V2 |
7,3 МБ |
184 кбит/с |
13% |
MP3 128 |
5,1 МБ |
128 кбит/с |
9% |
FLAC сжал трек на четверть, MP3 320 в четыре с лишним раза. На тысячу таких треков FLAC займёт около 43 ГБ, MP3 320 около 13 ГБ, MP3 128 около 5 ГБ. Степень сжатия FLAC зависит от музыки. Здесь плотная громкая электроника, и она сжалась слабо: тихая акустика обычно сжимается сильнее.
FLAC при этом ничего не теряет. Я проверил это контрольной суммой распакованного звука:
ffmpeg -i track.flac -f s16le - | md5sum # 511b1390... ffmpeg -i orig.wav -f s16le - | md5sum # 511b1390... ffmpeg -i again.flac -f s16le - | md5sum # 511b1390...
Третья строка: WAV, заново сжатый во FLAC. Все три суммы совпали, то есть звук совпадает до бита. FLAC работает как архиватор: предсказывает следующий отсчёт по предыдущим и хранит только ошибку предсказания.
Замер 2. Где обрывается верх
MP3 устроен иначе. Он делит звук на кадры по 1152 отсчёта, переводит каждый в спектр и решает, какие частоты записать точно, какие грубо, а какие выбросить. Первым под нож идёт самый верх спектра. На спектрограмме это видно как чёрная полоса сверху: слева оригинал, дальше MP3 320 и MP3 128.

То же самое одним графиком, усреднённо по всему треку:

Чёрная линия FLAC доходит до 22 кГц, это предел для частоты дискретизации 44,1 кГц. Остальные линии в какой-то момент падают вниз:
Формат |
Спектр обрывается на |
|---|---|
MP3 64 |
10,9 кГц |
MP3 128 |
16,5 кГц |
MP3 V2 и MP3 192 |
18,7 кГц |
MP3 320 |
20,1 кГц |
MP3 V0 |
обрыва нет, линия идёт рядом с FLAC |
Линия MP3 V0 идёт вплотную к FLAC, потому что на этой настройке LAME фильтр верхних частот выключает. Кодировщик сам об этом пишет, если запустить его с ключом --verbose:
-V0 polyphase lowpass filter disabled -b 320 Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz -V2 Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz -b 128 Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Из этого не следует, что V0 равен FLAC. График показывает, сколько энергии в среднем на каждой частоте. Насколько точно эти частоты записаны, по нему не видно. V0 оставляет верх спектра на месте и кодирует его грубо. Точность показывает следующий замер, и там V0 уступает MP3 320.
Слышен ли обрыв, зависит от слуха и от музыки. Верхняя граница слуха с возрастом опускается, и от 17 до 20 кГц в музыке мало энергии: на графике этот участок примерно на 50 дБ ниже пика спектра. Свою границу легко узнать: включите генератор тона и ведите частоту вверх, пока звук не пропадёт.
MP3 64 устроен ещё жёстче: LAME на этом битрейте сам понижает частоту дискретизации до 24 кГц, выше 12 кГц в таком файле звука нет совсем. Горб на 13 кГц, скорее всего, след обратного пересчёта в 44,1 кГц для графика: он зеркален спаду у 11 кГц относительно 12 кГц.
Замер 3. Разница с оригиналом
Обрыв верха показывает только часть потерь. Чтобы увидеть всё, я распаковал MP3 обратно в отсчёты и вычел их из оригинала. Осталось то, чем файлы отличаются.

Слева разница для MP3 320, справа для MP3 128, отрывок тот же, что на спектрограмме выше. Яркость показывает громкость. У MP3 128 разница идёт по всему спектру, а сильнее всего она ниже 5 кГц, где звучит сама музыка.
В цифрах: насколько разница тише самого трека.
Формат |
Разница тише трека на |
|---|---|
MP3 128 |
16,7 дБ |
MP3 V2 |
20,2 дБ |
MP3 V0 |
25,9 дБ |
MP3 320 |
30,2 дБ |
30,2 дБ мало. Шум на таком уровне, включённый отдельно, слышит любой. В MP3 его обычно не слышно, потому что кодировщик прячет ошибку рядом с громкими звуками. Ухо плохо различает тихий звук, если на близкой частоте в тот же момент звучит громкий. Это свойство называется маскировкой, и на нём построен весь формат: модель слуха в кодировщике считает, сколько ошибки поместится под каждым громким звуком, и тратит биты там, где спрятать её негде.
Поэтому число из таблицы нельзя читать как «слышимость». Оно говорит, сколько звука изменилось, и молчит о том, заметит ли это человек.
Замер 4. Повторное сжатие
Маскировка рассчитана на один проход. Если распаковать MP3 и сжать снова, кодировщик заново решает, что выбросить, и ошибки складываются. Я прогнал трек через LAME десять раз подряд.

Сколько раз сжали |
MP3 320 |
MP3 128 |
|---|---|---|
1 |
30,2 дБ |
16,7 дБ |
5 |
25,8 дБ |
9,9 дБ |
10 |
23,9 дБ |
6,4 дБ |
MP3 320 за десять проходов потерял 6,3 дБ, MP3 128 потерял 10,3 дБ. В жизни это выглядит так: трек скачали в MP3, обрезали в редакторе и сохранили, залили на сервис, сервис сжал его ещё раз. С FLAC такого не случается: его можно распаковывать и сжимать сколько угодно, сумма из первого замера останется той же.
Отсюда главный довод за FLAC. Он нужен как исходник, из которого в любой момент получается MP3, Opus или формат, которого пока нет. Обратного пути у сжатого файла нет.
Замер 5. FLAC, в котором нет верха
Расширение .flac говорит только о том, что файл сжат без потерь. Что лежало на входе кодировщика, оно не говорит. Мне попался такой файл на Wikimedia Commons, когда я искал трек для статьи:

У обоих файлов одинаковые параметры: 44,1 кГц, 16 бит. У «Help me, ERINNNNNN!!» спектр доходит до 22 кГц. У второго файла он обрывается на 15,3 кГц ступенькой, как у MP3 на графике из второго замера.
По самому файлу не узнать, откуда обрыв. Так выглядит MP3, пересохранённый во FLAC, и так же может выглядеть запись, которую отфильтровали при сведении. Но если вы платите за FLAC или качаете его ради качества, спектр стоит проверить. Спектрограмму показывают Audacity и Spek, а одной командой её строит ffmpeg:
ffmpeg -i track.flac -lavfi showspectrumpic=s=1200x600 spectrum.png
Перекодировать MP3 во FLAC бессмысленно: файл вырастет в несколько раз, а выброшенное не вернётся.
Слышно ли это
Замеры показывают, что файлы разные. Слышит ли это человек, проверяют только слепым тестом: слушатель не знает, какой файл играет, и выбирает на слух.
В 2009 году на конвенции Audio Engineering Society показали такую работу: Pras, Zimmerman, Levitin и Guastavino, «Subjective Evaluation of MP3 Compression for Different Musical Genres». Тринадцать подготовленных слушателей, музыканты и звукорежиссёры, сравнивали CD-качество с MP3 от 96 до 320 кбит/с. По аннотации работы, они значимо предпочитали CD файлам MP3 с битрейтом до 192 кбит/с. Про 256 и 320 кбит/с такого вывода в аннотации нет.
Вики Hydrogenaudio пишет то же другими словами: в слепых тестах LAME обычно становится неотличим от оригинала на битрейтах заметно ниже максимального.
Чужие уши ничего не говорят о ваших, поэтому проще проверить самому. Нужна программа, которая играет два файла под нейтральными названиями и переключает их без паузы: плагин ABX для foobar2000 на компьютере или сравнение версий трека в Nami на телефоне. Сколько верных ответов нужно, чтобы результат не был везением, считается по формуле для подбрасывания монеты:
Попыток |
Верных ответов |
Шанс угадать столько случайно |
|---|---|---|
10 |
8 и больше |
5,5% |
10 |
9 и больше |
1,1% |
16 |
12 и больше |
3,8% |
16 |
13 и больше |
1,1% |
Восемь из десяти ещё похоже на удачу. Девять из десяти или тринадцать из шестнадцати уже говорят, что разницу вы слышите.
Два условия, без которых тест ничего не покажет:
Громкость файлов должна совпадать. Более громкий вариант обычно кажется лучше.
Наушники должны быть проводными. Bluetooth сам сжимает звук с потерями: SBC, AAC, aptX и LDAC все относятся к таким кодекам. FLAC по дороге к беспроводным наушникам перекодируется так же, как MP3.
Что из этого следует
Задача |
Формат |
Почему |
|---|---|---|
Домашняя библиотека, архив |
FLAC |
Исходник без потерь: из него получается любой формат, повторное сжатие ему не вредит |
Телефон с небольшой памятью |
MP3 V0 или 320 |
В 3 или 4 раза меньше FLAC. В работе 2009 года слушатели предпочитали CD только файлам до 192 кбит/с |
Мобильный интернет |
от 128 до 192 кбит/с |
Экономит трафик, потери уже можно услышать |
Трек, который будут резать и пересохранять |
FLAC |
У MP3 128 десять пересохранений съели больше 10 дБ |
В Nami это устроено так: сервер хранит файлы в исходном формате, а в экономном качестве сжимает их на лету в Opus 128 кбит/с и отдаёт телефону.
Ограничения замеров
Трек один, и скачать его бесплатно нельзя: это файл из моей коллекции. Скрипт работает на любом вашем файле. На другой музыке цифры сдвинутся: кастаньеты и клавесин для MP3 труднее, чем плотный рок.
Кодировщик один, LAME 3.100. Старые кодировщики на том же битрейте работают хуже.
Разница в децибелах не равна слышимости, об этом сказано в третьем замере. На слух её проверяет только слепой тест.
Opus и AAC я не сравнивал. Они новее и на низких битрейтах сжимают лучше MP3. Fraunhofer закрыл программу лицензирования MP3 23 апреля 2017 года и сам назвал AAC более эффективным кодеком.
FLAC 24 бита и 96 кГц я тоже не трогал: это отдельный спор.
Попробовать
Сайт: nami-music.ru
Android (8.0 и новее): скачать APK
Windows и Linux: скачать для компьютера
Сервер: инструкция по установке, ставится одной командой
Nami бесплатный, без рекламы и аккаунтов. Про проект целиком я рассказывал в первой статье.
Комментарии (7)

AliceKwangweith
10.10.2026 10:09Как ни странно но по ощущениям в MP3 стереобаза более сплюснутая, звук более плоский что ли, разница конечно не супер-громадная, у кого есть хороший ЦАП+усилитель не за 100$ мне кажется разницу в любом случае услышат. Возможно это и есть эти самые шумы. Давно перешел на FLAC и ни капли не жалею, скачку делаю в TIDAL

AstolfoOwO Автор
10.10.2026 10:09Весьма громадная в определенных жанрах, но по поводу ЦАПа не знаю, я им толком то не пользовался, ибо у самого звуковая карта (не смотря что они выполняют почти одну и ту же функцию, результат все равно разный)

MountainGoat
10.10.2026 10:09Все эти тесты всегда предлагают определить, есть ли разница в звуке. При этом даже не ставится вопрос, а звучит ли хуже. Если ставить вопрос так, то окажется, что 64кб/с хватит всем.
С именно MP3 есть нюанс: стандарт допускает широкое поле для вариаций, и есть кодеки, отличные от lame, которые могут, например, обрезать всё что выше 16Кгц независимо от битрейта. И их можно было найти в платных программах за дохренище денег. Или в устройствах. Кто такими пользовался, тот уверенно слышал, как убог MP3 320k.
Кстати, то, что MP3 320k стал стандартом на трекерах, очень плохо. Ни на флот, ни на корнеплод. Весит дофига, а если пересжимать, то могут вылезти, а могут и не вылезти, непонятные шумы.

AstolfoOwO Автор
10.10.2026 10:09Думаю, вопрос «хуже или нет» не ставят потому, что ответ зависит от жанра. Плотный рок или электроника прячут потери под громким звуком, кастаньетам и клавесину сжатие даётся труднее. «Есть ли разница» проверить проще: ответ либо верный, либо нет.
На 64 кбит/с LAME на моём треке понизил частоту дискретизации до 24 кГц и срезал всё выше 10,9 кГц. Хватит ли этого, тоже зависит от музыки.)

MountainGoat
10.10.2026 10:09Ну 64 конечно, для красного словца. Я свою хранилку набиваю Opus 168 кб/с. Качаю флаки, если получается, и конверчу. Под флаки места мало.
David_Osipov
Рекомендую вместо старого mp3 добрый Opus - классная вещь.
AstolfoOwO Автор
Ну в потоковом прослушивании все равно приходится использовать mp3 при плохом соединении, а так я использую opus как базу для среднего интернета если оригинал в flac)