理想情况下,我想从MP3转换为FLAC,然后再转换回。我还需要能够对此编写脚本。
理想情况下,我想从MP3转换为FLAC,然后再转换回。我还需要能够对此编写脚本。
Answers:
声音格式转换和简单转换的基本工具是SoX,即声音处理程序的瑞士军刀。
sox foo.mp3 foo.flac
如果您正在运行Debian,sox
则对Len和squeeze的支持会破坏对MP3的编写(据我所知,同一问题会影响Ubuntu 10.04和10.10)。该错误已在2011年3月上旬修复,因此获取最新的源(或获取sox
14.3.1-1build1或更高版本的二进制文件)并重新编译应该可以。
编码为的替代方法.mp3
是lame
。它不读.flac
,但可以使用sox
或flac
要转换.flac
到.wav
,然后lame
从.wav
到.mp3
。
flac -d foo.flac -c | lame - foo.mp3
正如其他人已经提到的,您当然可以使用SoX,但是我建议使用lame
and flac
:
您的第一个问题是从.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编码步骤开始,质量会受到损害。
但是我认为您有一个合理的用例...