据报道,该错误源于在 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%)
对于自动化,我更喜欢命令行方法。
虽然这处于灰色区域(版权状态=未知),该文件出现在以某首不明歌曲为中心的社区中(数字化磁带)。
答案1
错误:不支持的格式类型 3
类型 3 与WAVE_FORMAT_IEEE_FLOAT 波形格式。
#define WAVE_FORMAT_IEEE_FLOAT (0x0003U)
所以你要求 flac 编码浮点编码.wav时,据所述,flac(还?)不支持:
FLAC 现在可以编码和解码 32 位/样本音频……请注意,这是 32 位整数样本,而不是 32 位浮点样本。
您应该能够使用以下命令将样本从命令行转换为 32 位整数snd文件转换来自准标准 libsndfile。就像是
sndfile-convert -pcm32 ~/music/unknown-80s-german-song.wav converted_result
请注意,32 位浮点数使用 24 位尾数,它实际上应该导致每个样本文件有 24 位。
另请注意,sndfile-convert
通过指定输出文件名的 .flac 扩展名,可以在同一时间以 flac 格式输出。 (不过我没有测试过)
OP 的经验返回sndfile-convert
似乎无法同时实现两种转换,有些东西袜队应该能够根据奥斯汀·赫梅尔加恩
sox ~/music/unknown-80s-german-song.wav -t flac -e signed-integer -b 24 -C 8 ~/music/unknown-80s-german-song.flac
应该将浮点样本转换为 24 位有符号整数,并在同一过程中转换为压缩因子为 8 的 flac。