Коротко об инструменте
WAV хранит звук без сжатия, поэтому минута стерео в 44,1 кГц занимает около 10 мегабайт. FLAC сжимает целочисленный сигнал без потерь: файл становится меньше вдвое, а распаковка возвращает побитово тот же звук. Кодирует libFLAC в WebAssembly прямо на странице, заголовок WAV читается напрямую, поэтому частота дискретизации переносится без пересэмплирования. Исключение одно: 32-битный float пишется в 24 бита, и статус об этом предупреждает. Смотрите также: лёгкий MP3 для отправки и публикации, сжатие с потерями в AAC для смартфона, быстрая проверка звука после конвертации.
Для целочисленного WAV — да: при распаковке получается ровно тот же поток сэмплов, до последнего бита. Отличие от MP3 и AAC в том, что там часть информации выбрасывается навсегда, поэтому FLAC берут для архива и мастеров. Оговорка касается 32-битного float: такую разрядность формат FLAC не хранит, сигнал записывается в 24 бита, значения за пределами диапазона срезаются, и страница показывает их число вместе с предупреждением, что побитовой копии здесь нет.
Обычно на 30–60 процентов, и разброс зависит от материала. Плотно сведённая громкая музыка сжимается хуже, классика и записи речи с паузами — лучше. Тишина и монотонные участки сжимаются очень сильно, поэтому диктофонные записи часто теряют больше половины веса.
Только на размер файла и время кодирования, но не на звук: на любом уровне распакованный результат побитово совпадает с оригиналом. Разница между уровнем 5 и 8 обычно составляет один-три процента размера, а времени уходит в разы больше, поэтому по умолчанию стоит 5.
Частота дискретизации — всегда: инструмент разбирает заголовок WAV сам, вместо того чтобы прогонять звук через аудиодвижок браузера, который привёл бы 44,1 кГц к 48 кГц. Разрядность сохраняется для целочисленных файлов 8, 16 и 24 бита. Для 32-битного float сохранить её нельзя, потому что FLAC хранит только целые: такой файл записывается в 24 бита с явной отметкой в статусе и подсчётом срезанных сэмплов.
Экзотические варианты WAV — ADPCM, A-law, μ-law и другие сжатые разновидности контейнера. Для них инструмент переключается на декодер браузера и честно предупреждает в статусе, что результат не побитово точный. Обычные PCM-файлы из редакторов и диктофонов обрабатываются напрямую.
Нет. Библиотека libFLAC загружается на страницу как обычный скрипт и работает в вашем браузере, а сам звук читается из вашей файловой системы. Сетевых запросов с содержимым файла нет, и это видно во вкладке Network в инструментах разработчика.
До: session.wav, 44100 Гц, 16 бит, стерео, 52 МБ
После: session.flac около 30 МБ — звук идентичен исходному
До: master.wav, 48000 Гц, 24 бита
После: master.flac — 48000 Гц и 24 бита сохранены, пересэмплирования нет
Оценка и фидбек помогают понять, что улучшать дальше.