有没有一个好的命令行工具可以在 FLAC 音频格式之间进行转换?

有没有一个好的命令行工具可以在 FLAC 音频格式之间进行转换?

理想情况下,我想在 MP3 和 FLAC 之间相互转换。我还需要能够编写这个脚本。

答案1

声音格式转换和简单转换的基本工具是SoX,声音处理程序的瑞士军刀

sox foo.mp3 foo.flac

如果您运行的是 Debian,则对写入 MP3 的支持sox会被破坏莱尼(据我所知,同样的问题也会影响 Ubuntu 10.04 和 10.10)。这个错误该问题已于 2011 年 3 月上旬修复,因此获取最新的源代码(或获取sox14.3.1-1build1 或更高版本的二进制文件)并重新编译应该可以工作。

编码的另一种选择.mp3lame。它不读取.flac,但您可以使用soxflac从 转换.flac.wav,然后lame.wav转换为.mp3

flac -d foo.flac -c | lame - foo.mp3

答案2

袜队版本 13 及更高版本支持 FLAC,以及许多其他格式。袜子可以做很多东西转换为音频文件,而不仅仅是从一种格式转换为另一种格式。是为了音频什么图像魔术师是图形。

答案3

奇怪的是,它的名字叫flac。使用起来有点痛苦,或者当我用它编写转码作业脚本时又回来了。

答案4

你当然可以使用 SoX,正如其他人已经提到的那样,但我建议使用lameflac:

你的第一个问题是从 到.mp3.flac见下文为什么这通常是一个坏主意):

lame --decode <file>.mp3 - | flac -o <file>.flac -

这将使用 WAV 标头,这对于很长的文件(四个小时或更长时间的声音文件等)有限制。

你的第二个问题是如何从.flac.mp3

flac -d -c <file>.flac | lame - <file>.mp3

lame这些设置假定默认质量级别等。阅读和/或 的手册页flac以更好地了解如何调整它们。


现在,您可能有很长的录音,然后您想将其重新编码为有损格式。这是我的用例之一,我想出了这个:

.flac从使用默认质量设置变为.mp3使用默认质量设置:

flac -d --force-raw-format --endian=little --sign=signed <file>.flac -c | lame -r -s 48 - <file>.mp3

这假设原始格式是 PCM 数据。采样率 48kHz,两个通道。每个样本都是 16 位、小端、有符号整数。

请注意,此处的编码过程lame使用默认质量设置,这对您来说可能不够复杂。


应该注意的是,从 MP3 文件制作 FLAC 文件是没有意义的,因为 MP3 已经是有损编码的。

从 MP3 -> FLAC 然后 FLAC -> MP3 没有任何意义,因为质量会因第一个原始 MP3 编码步骤而受到损害。

不过我假设你有一个合理的这个的用例...

相关内容