无法将 WAV 文件编码为 FLAC;返回“错误:不支持的格式类型 3”

无法将 WAV 文件编码为 FLAC;返回“错误:不支持的格式类型 3”

据报道,该错误源于在 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。

相关内容