.FLAC, имеющий тот же битрейт, что и декодированный .WAV

441
Pendechosen

Я получил файл .flac (17,9 МБ, 24 бит / 96 кГц) из Интернета, и я не могу понять, почему создается впечатление, что в файле вообще нет сжатия. Декодированный .wav (15,9 МБ, 24 бит / 96 кГц) немного меньше, чем .flac, даже после удаления метаданных.

Затем я перекодировал (libFLAC 1.3.2) .flac, и он действительно сжался до более чем половины оригинала. Мне любопытно, что именно случилось с первым файлом .flac (libFLAC 1.3.1, согласно mediainfo)

Я загрузил два .flac (всего 24MB) в Github . Я быстро удалю хранилище после того, как решу вопрос.

Обновление 1 : Я удивлен, обнаружив, что файл .flac и другие загруженные файлы .flac имеют одинаковый битрейт, несмотря на разницу в длительности. Если указание постоянной скорости передачи битов для кодирования невозможно, то мне интересно , есть ли способ отключить сжатие в кодере, которое может объяснить их постоянную скорость передачи данных? Как-то декодированный .wav имеет тот же битрейт, что и оригинальный .flac.

Обновление 2 : заголовок изменен с «.FLAC, имеющий больший размер, чем декодированный .WAV», на «.FLAC, имеющий тот же битрейт, что и декодированный .WAV»

1

2 ответа на вопрос

1
Mr Public

Похоже, что оригинальный файл .FLAC имеет битрейт более чем в два раза больше, чем перекодированный файл .FLAC (4943 Кбит / с против 2216 Кбит / с).

Выполнив несколько простых математических вычислений, мы можем рассчитать максимальный битрейт, необходимый для получения несжатого аудиофайла без потерь:

96000 Samples per Second * 24 Bits per Sample = 2304000 Bits per Second (2304Kbps)

Мы видим, что исходный файл был вынужден кодировать с гораздо более высокой скоростью передачи данных, чем было необходимо. Перекодирование файла с использованием обычных настроек должно обеспечить гораздо более разумный битрейт для типа файла, что приведет к уменьшению общего размера файла.

спасибо за ответ, но я не уверен, что [опции кодирования] (https://xiph.org/flac/documentation_tools_flac.html#encoding_options) я могу использовать для принудительного кодирования с более высокой скоростью передачи битов или произвольной скоростью передачи битов, если это возможно. Pendechosen 7 лет назад 0
@Pendechosen Я не уверен, как указать точный битрейт, но это могла быть комбинация опций кодирования, которые плохо воспроизводились с файлом. С точки зрения степени сжатия, вы можете установить предустановку в диапазоне от 0 до 8, или переключаться с флагами `-l`` -b` и `-r`. Вероятно, это ошибка в оригинальной кодировке. Mr Public 7 лет назад 0
Я удивлен, обнаружив, что файл .flac и другие загруженные файлы .flac имеют одинаковый битрейт, несмотря на разницу в продолжительности. Если указание постоянной скорости передачи битов для кодирования невозможно, то мне интересно, есть ли способ отключить сжатие в кодере, которое может объяснить их постоянную скорость передачи данных? Как-то декодированный .wav имеет тот же битрейт, что и оригинальный .flac. Pendechosen 7 лет назад 0
0
Pendechosen

Видимо, я смотрел на несжатый FLAC. Такое кодирование может быть сделано с помощью таких инструментов, как dBpoweramp Music Converter или XRECODE3.

Из здесь, я получил командную строку для libFLAC для достижения аналогичного результата:

flac --disable-constant-subframes --disable-fixed-subframes --no-seektable -l 0 -b 4608 -V input.wav -o output.flac 

Репозиторий удален.

Похожие вопросы