据报道,该错误源于在 Windows 上创建的文件。尝试转换时,flac 1.4.3
打印:
$ flac --best ~/music/unknown-80s-german-song.wav
unknown-80s-german-song.wav: ERROR: unsupported format type 3
我在 Audacity 3.4.2 (Flatpak) 中打开该文件并尝试导出 - 该程序默认为“签名 16 位 PCM”编码,而文件本身显示为 32 位:
$ mediainfo ~/music/unknown-80s-german-song.wav
General
Complete name : /home/user/music/unknown-80s-german-song.wav
Format : Wave
Format settings : PcmWaveformat
File size : 60.6 MiB
Duration : 2 min 59 s
Overall bit rate mode : Constant
Overall bit rate : 2 822 kb/s
Audio
Format : PCM
Format profile : Float
Codec ID : 3
Codec ID/Hint : IEEE
Duration : 2 min 59 s
Bit rate mode : Constant
Bit rate : 2 822 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Bit depth : 32 bits
Stream size : 60.6 MiB (100%)
对于自动化,我更喜欢命令行方法。
虽然这处于灰色区域(版权状态 =未知),但该文件出现在以某首不明歌曲(数字化磁带)为中心的社区中。
类型 3 与WAVE_FORMAT_IEEE_FLOAT 波形格式相关联。
因此,您要求 flac 对浮点编码的 .wav 进行编码,而据所述,flac(还?)不支持:
您应该能够使用准标准 libsndfile 中的sndfile-convert从命令行将样本转换为 32 位整数。就像是
请注意,32 位浮点数使用 24 位尾数,它实际上应该导致每个样本文件有 24 位。
另请注意,
sndfile-convert
通过指定输出文件名的 .flac 扩展名,可以在同一时间以 flac 格式输出。(不过我没有测试过)OP 的经验回报似乎
sndfile-convert
无法同时实现两种转换,根据奥斯汀·赫梅尔加恩 (Austin Hemelgarn) 的说法,红袜应该能够做到这一点应该将浮点样本转换为 24 位有符号整数,并在同一过程中转换为压缩因子为 8 的 flac。