如何将巨大的 FLAC 文件编码为 MP3 和其他文件,如 AAC?

pol*_*mon 6 audio recording mp3 flac

我的问题是很长的录音,比 WAV 支持的还要长。我说的是大约八小时的连续录音。

现在,我的大部分录音都使用sox到 FLAC,这是最有意义的,因为这些是来自外部声卡的现场录音。

现在,我想将其编码为 MP3 或 AAC(在 MP4 容器中)。

我设法做到这一点的唯一方法是使用 FFmpeg,但实际上我更愿意使用编码器应用程序,如lame、 或neroaacenc

现在,我在可能的情况下这样做,但我使用 WAV 作为绕道。我将 FLAC 解码为 WAV,然后将 WAV 编码为最终产品。但正如我所说,它不适用于超过一定长度的录音。

现在,我的想法是使用管道并强制解码为 RAW,然后将其编码为目标格式。

我需要一些帮助。有人可以向我提供一些示例,如何解码 FLAC 文件,并lame通过管道 RAW 数据将其编码为 MP3 ?

Mat*_*Mat 7

你应该尝试这样的事情:

flac -c -d -force-raw-format --endian=little --signed=unsigned input.flac | \
  lame -r --little-endian --unsigned \
       -s 44.1 [other encoding options here] - output.mp3
Run Code Online (Sandbox Code Playgroud)

flac方:

  • -c 表示输出到标准输出
  • -d 解码
  • -force-raw-format --endian=little --signed=unsigned 强制 RAW、小端、无符号输出

lame方:

  • - 从标准输入读取(这几乎是标准的)
  • -r 读取 RAW pcm 数据
  • --little-endian --unsigned 匹配什么蹩脚的输出
  • -s 频率:将该参数与您的 flac 文件包含的内容相匹配
  • --bitwidth如果您的 flac 文件不是 16 位/样本,您可能需要

关于字节序和签名,不确定您拥有的“本机”格式是什么(或如何确定) - 尝试一些组合。只要它们在管道的两侧匹配,选择错误的只会花费 CPU 时间。