我从网上下载了一个 .flac 文件(17.9MB,24bit/96kHz),但我不知道为什么感觉这个文件根本没有压缩。解码后的 .wav(15.9MB,24bit/96kHz)比 .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
看起来原始 .FLAC 文件的比特率是重新编码的 .FLAC 文件的两倍多(4943Kbps 对 2216Kbps)。
通过一些简单的数学运算,我们可以计算出实现无损、未压缩音频文件所需的最大比特率:
96000 Samples per Second * 24 Bits per Sample = 2304000 Bits per Second (2304Kbps)
我们可以看到,原始文件被迫以比所需更高的比特率进行编码。使用正常设置重新编码文件应该可以获得更适合该文件类型的合理比特率,因此文件整体会更小。
答案2
显然,我研究的是未压缩的 FLAC。这种编码可以使用以下工具完成:dBpoweramp 音乐转换器或 XRECODE3。
从这里,我获得了 libFLAC 的命令行来实现类似的结果:
flac --disable-constant-subframes --disable-fixed-subframes --no-seektable -l 0 -b 4608 -V input.wav -o output.flac
存储库已删除。